The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
An R package to display and analyze ROC curves.
For more information, see:
The latest stable version is best installed from the CRAN:
install.packages("pROC")
If you don’t want to read the manual first, try the following:
library(pROC)
data(aSAH)
roc(aSAH$outcome, aSAH$s100b)
roc(outcome ~ s100b, aSAH)
roc(outcome ~ s100b, aSAH, smooth=TRUE)
<- roc(aSAH$outcome,
roc1 $s100b, percent=TRUE,
aSAH# arguments for auc
partial.auc=c(100, 90), partial.auc.correct=TRUE,
partial.auc.focus="sens",
# arguments for ci
ci=TRUE, boot.n=100, ci.alpha=0.9, stratified=FALSE,
# arguments for plot
plot=TRUE, auc.polygon=TRUE, max.auc.polygon=TRUE, grid=TRUE,
print.auc=TRUE, show.thres=TRUE)
# Add to an existing plot. Beware of 'percent' specification!
<- roc(aSAH$outcome, aSAH$wfns,
roc2 plot=TRUE, add=TRUE, percent=roc1$percent)
coords(roc1, "best", ret=c("threshold", "specificity", "1-npv"))
coords(roc2, "local maximas", ret=c("threshold", "sens", "spec", "ppv", "npv"))
# Of the AUC
ci(roc2)
# Of the curve
<- ci.se(roc1, specificities=seq(0, 100, 5))
sens.ci plot(sens.ci, type="shape", col="lightblue")
plot(sens.ci, type="bars")
# need to re-add roc2 over the shape
plot(roc2, add=TRUE)
# CI of thresholds
plot(ci.thresholds(roc2))
# Test on the whole AUC
roc.test(roc1, roc2, reuse.auc=FALSE)
# Test on a portion of the whole AUC
roc.test(roc1, roc2, reuse.auc=FALSE, partial.auc=c(100, 90),
partial.auc.focus="se", partial.auc.correct=TRUE)
# With modified bootstrap parameters
roc.test(roc1, roc2, reuse.auc=FALSE, partial.auc=c(100, 90),
partial.auc.correct=TRUE, boot.n=1000, boot.stratified=FALSE)
# Two ROC curves
power.roc.test(roc1, roc2, reuse.auc=FALSE)
power.roc.test(roc1, roc2, power=0.9, reuse.auc=FALSE)
# One ROC curve
power.roc.test(auc=0.8, ncases=41, ncontrols=72)
power.roc.test(auc=0.8, power=0.9)
power.roc.test(auc=0.8, ncases=41, ncontrols=72, sig.level=0.01)
power.roc.test(ncases=41, ncontrols=72, power=0.9)
?pROC
on the R command lineIf you still can’t find an answer, you can:
Download the source code from git, unzip it if necessary, and then
type R CMD INSTALL pROC
. Alternatively, you can use the devtools package by Hadley Wickham to automate the process
(make sure you follow the full
instructions to get started):
if (! requireNamespace("devtools")) install.packages("devtools")
::install_github("xrobin/pROC@develop") devtools
To run all automated tests and R checks, including slow tests:
cd .. # Run from parent directory
VERSION=$(grep Version pROC/DESCRIPTION | sed "s/.\+ //")
R CMD build pROC
RUN_SLOW_TESTS=true R CMD check pROC_$VERSION.tar.gz
Or from an R command prompt with devtools:
devtools::check()
To run automated tests only from an R command prompt:
run_slow_tests <- TRUE # Optional, include slow tests
devtools::test()
The vdiffr package is used for visual tests of plots.
To run all the test cases (incl. slow ones) from the command line:
<- TRUE
run_slow_tests ::test() # Must run the new tests
devtools::snapshot_review() testthat
To run the checks upon R CMD check, set environment variable
NOT_CRAN=1
:
NOT_CRAN=1 RUN_SLOW_TESTS=true R CMD check pROC_$VERSION.tar.gz
Version
and Date
in
DESCRIPTION
NEWS
VERSION=$(grep Version pROC/DESCRIPTION | sed "s/.\+ //") && echo $VERSION
R CMD build pROC && R CMD check --as-cran pROC_$VERSION.tar.gz
NOT_CRAN=1 RUN_SLOW_TESTS=true R CMD check pROC_$VERSION.tar.gz
rhub::check_for_cran()
revdepcheck::revdep_check(num_workers=8, timeout = as.difftime(60, units = "mins"))
git checkout master && git merge develop
git tag v$VERSION && git push --tags
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.