reportROC: An Easy Way to Report ROC Analysis

View source: R/reportROC.R

reportROCR Documentation

An Easy Way to Report ROC Analysis

Description

Provides an easy way to report the results of ROC analysis, including: 1. an ROC curve. 2. the value of Cutoff, AUC (Area Under Curve), ACC (accuracy), SEN (sensitivity), SPE (specificity), PLR (positive likelihood ratio), NLR (negative likelihood ratio), PPV (positive predictive value), NPV (negative predictive value).

Usage

reportROC(gold,predictor,predictor.binary,important,positive,exact,plot,xlab,ylab)

Arguments

gold

numeric(0/1) or binary, the 'gold standard'; typically encoded with 0 (controls) and 1 (cases)

predictor

numeric, the predictor variable

predictor.binary

numeric(0/1) or binary, if this argument was used, other arguments including 'predictor' and 'important' would be disabled

important

'se' or 'sp', some Youden index maybe the same, and 'important' is to indicate which is more important between sensitivity and specificity

positive

logic, 'l': the larger predictor or predictor.binary indicates the 'cases', 's': the smaller one indicates the 'cases'

exact

logic, whether to calculate the exact p value for AUC

plot

logic, whether to plot the ROC curve with specific style

xlab

character, the name of X axis

ylab

character, the name of Y axis

Value

Curoff

cutoff, only for numeric predictor

AUC

Area Under Curve, AUC

AUC.SE

the standard error of AUC

AUC.low,AUC.up

the 95 percent CI of AUC

P

the p value for AUC using one-sided test, which is different from SPSS using two-sided test

ACC

accuracy

ACC.low,ACC.up

the 95 percent CT of accuracy

SEN,SEN.low,SEN.up

the esitmate and the 95 percent CI of sensitivity

SPE,SPE.low,SPE.up

the esitmate and the 95 percent CI of specificity

PLR,PLR.low,PLR.up

the esitmate and the 95 percent CI of positive likelihood ratio

NLR,NLR.low,NLR.up

the esitmate and the 95 percent CI of negative likelihood ratio

PPV,PPV.low,PPV.up

the esitmate and the 95 percent CI of positive predictive value

NPV,NPV.low,NPV.up

the esitmate and the 95 percent CI of negative predictive value

PPA,PPA.low,PPA.up

the esitmate and the 95 percent CI of percentage of positive accordance

NPA,NPA.low,NPA.up

the esitmate and the 95 percent CI of percentage of negative accordance

TPA,TPA.low,TPA.up

the esitmate and the 95 percent CI of percentage of total accordance

KAPPA,KAPPA.low,KAPPA.up

the esitmate and the 95 percent CI of Kappa

Note

Please feel free to contact us, if you have any advice and find any bug!

Update description:

version 2.0: 1. 95 percent CIs for AUC, SEN, SPE, PLR, NLR, PPV and NPV are available.

version 3.0: 1. binary predictor is available with the new argument 'predictor.binary'. 2. positive indicator is available with the new argument 'positive'.

version 3.1: 1. accuracy is available. 2. roc curve is available for binary predictor.

version 3.2: 1. data with missing values can be handled.

version 3.3: 1. fixed the bug of the same value in 'AUC' and 'AUC.low'.

version 3.4: 1. fixed the axis names of the ROC plot. Thank Cesar S. Rabak (csrabak@hotmial.com) for the useful feedback.

version 3.5: 1. add p value to the outputs.

version 3.6: 1. add PPA, NPA, TPA, and KAPPA to the outputs. 2. limit sensitivity and specificity to a maximum of one. Thank Tengfei Song (songtf@mail2.sysu.edu.cn) for the useful feedback. 3. add the argument 'exact' to avoid the wanring message of "cannot compute exact p-value" in wilcox.test. 4. add the 95 percent CI to AUC in the ROC cruve.

more functions will be included in 'reportROC' package!

Author(s)

Zhicheng Du<dgdzc@hotmail.com>, Yuantao Hao<haoyt@mail.sysu.edu.cn>

See Also

nothing

Examples

data(aSAH)
#for continuous variables
reportROC(gold=aSAH$outcome,predictor=aSAH$s100b,important="se",plot=TRUE)
#for binary variables
binary=rep(0,nrow(aSAH))
binary[aSAH$s100b>=0.205]=1
reportROC(gold=aSAH$outcome,predictor.binary=binary)
reportROC(gold=aSAH$outcome[1:50],predictor.binary=binary[1:50],exact=FALSE)

reportROC documentation built on June 17, 2022, 5:06 p.m.