- Notifications
You must be signed in to change notification settings - Fork31
Display and analyze ROC curves in R and S+
License
xrobin/pROC
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
AnR package to display and analyze ROC curves.
For more information, see:
- Xavier Robin, Natacha Turck, Alexandre Hainard,et al. (2011) “pROC: an open-source package for R and S+ to analyze and compare ROC curves”.BMC Bioinformatics,7, 77. DOI:10.1186/1471-2105-12-77
- The official web page
- The CRAN page
- My blog
- The FAQ
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)
roc1<- roc(aSAH$outcome,aSAH$s100b,percent=TRUE,# arguments for aucpartial.auc=c(100,90),partial.auc.correct=TRUE,partial.auc.focus="sens",# arguments for cici=TRUE,boot.n=100,ci.alpha=0.9,stratified=FALSE,# arguments for plotplot=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!roc2<- roc(aSAH$outcome,aSAH$wfns,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 AUCci(roc2)# Of the curvesens.ci<- ci.se(roc1,specificities=seq(0,100,5))plot(sens.ci,type="shape",col="lightblue")plot(sens.ci,type="bars")# need to re-add roc2 over the shapeplot(roc2,add=TRUE)# CI of thresholdsplot(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)
- Type
?pROC
on the R command line - Make sure you'veread the FAQ
- Search forquestions tagged with pROC-R-package on Stack Overflow
If you still can't find an answer, you can:
- Ask a question on Stack Overflow with the pROC-r-package tag
- Bug reports should be submitted to the GitHub issue tracker
Download the source code from git, unzip it if necessary, and then typeR CMD INSTALL pROC
. Alternatively, you can use thedevtools package byHadley Wickham to automate the process (make sure you followthe full instructions to get started):
if (! requireNamespace("devtools")) install.packages("devtools")devtools::install_github("xrobin/pROC@develop")
To run all automated tests and R checks, including slow tests:
cd .. # Run from parent directoryVERSION=$(grep Version pROC/DESCRIPTION | sed "s/.\+ //")R CMD build pROCRUN_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 testsdevtools::test()
Thevdiffr package is used for visual tests of plots.
To run all the test cases (incl. slow ones) from the command line:
run_slow_tests<-TRUEdevtools::test()# Must run the new teststestthat::snapshot_review()
To run the checks upon R CMD check, set environment variableNOT_CRAN=1
:
NOT_CRAN=1 RUN_SLOW_TESTS=true R CMD check pROC_$VERSION.tar.gz
- Update
Version
andDate
inDESCRIPTION
- Update version and date in
NEWS
- Get new version to release:
VERSION=$(grep Version pROC/DESCRIPTION | sed "s/.\+ //") && echo $VERSION
- Build & check package:
R CMD build pROC && R CMD check --as-cran pROC_$VERSION.tar.gz
- Check with slow tests:
NOT_CRAN=1 RUN_SLOW_TESTS=true R CMD check pROC_$VERSION.tar.gz
- Check with R-devel:
rhub::check_for_cran()
- Check reverse dependencies:
revdepcheck::revdep_check(num_workers=8, timeout = as.difftime(60, units = "mins"))
- Merge into master:
git checkout master && git merge develop
- Create a tag on master:
git tag v$VERSION && git push --tags
- Submit to CRAN
About
Display and analyze ROC curves in R and S+