- 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+
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors9
Uh oh!
There was an error while loading.Please reload this page.