roc_neat | R Documentation |
Comparison of two areas under the
receiver operating characteristic curves
(AUCs) and plotting any number of
ROC curves.
roc_neat( roc1, roc2 = NULL, pair = FALSE, greater = NULL, ci = NULL, hush = FALSE, plot_rocs = FALSE, roc_labels = "", cutoff_auto = TRUE, cutoff_custom = NULL )
roc1 |
Receiver operating characteristic (ROC) |
roc2 |
Receiver operating characteristic (ROC) |
pair |
Logical. If |
greater |
|
ci |
Numeric; confidence level for the returned CIs (raw difference). |
hush |
Logical. If |
plot_rocs |
Logical. If |
roc_labels |
Optional character vector to provide legend label texts (in the order of the provided ROC objects) for the ROC plot. |
cutoff_auto |
Logical. If |
cutoff_custom |
Custom cutoff to be indicated on the plot can be given
here in a |
Prints DeLong's test results for the comparison of the two given AUCs
in APA style, as well as corresponding CI for the AUC difference.
Furthermore, when assigned, returns a list with stat
(D value),
p
(p value), and, when plot is added, ROC plot.
The main test statistics are calculated via
pROC::roc.test
as DeLong's test (for both
paired and unpaired). The roc_neat
function merely prints it in APA
style. The CI is calculated based on the p value, as described by Altman and
Bland (2011).
The ROC object may be calculated via t_neat
, or directly with
pROC::roc
.
Altman, D. G., & Bland, J. M. (2011). How to obtain the confidence interval from a P value. Bmj, 343(d2090). doi: 10.1136/bmj.d2090
DeLong, E. R., DeLong, D. M., & Clarke-Pearson, D. L. (1988). Comparing the areas under two or more correlated receiver operating characteristic curves: a nonparametric approach. Biometrics, 44(3), 837-845. doi: 10.2307/2531595
Robin, X., Turck, N., Hainard, A., Tiberti, N., Lisacek, F., Sanchez, J. C., & Muller, M. (2011). pROC: an open-source package for R and S+ to analyze and compare ROC curves. BMC bioinformatics, 12(1), 77. doi: 10.1186/1471-2105-12-77
t_neat
# calculate first AUC (from v1 and v2) v1 = c(191, 115, 129, 43, 523,-4, 34, 28, 33,-1, 54) v2 = c(4,-2, 23, 13, 32, 16, 3, 29, 37,-4, 65) results1 = t_neat(v1, v2, auc_added = TRUE) # calculate second AUC (from v3 and v4) v3 = c(14.1, 58.5, 25.5, 42.2, 13, 4.4, 55.5, 28.5, 25.6, 37.1) v4 = c(36.2, 45.2, 41, 24.6, 30.5, 28.2, 40.9, 45.1, 31, 16.9) results2 = t_neat(v3, v4, auc_added = TRUE) # one-sided comparison of the two AUCs roc_neat(results1$roc_obj, results2$roc_obj, greater = "1") # create a list of randomlz generated AUCs set.seed(1) aucs_list = list() for (i in 1:4) { aucs_list[[i]] = t_neat(rnorm(50, (i-1)), rnorm(50), auc_added = TRUE, hush = TRUE)$roc_obj } # depict AUCs (recognized as list) roc_neat(aucs_list) # with custom cutoffs depicted roc_neat(aucs_list, cutoff_custom = list(0.2), cutoff_auto = FALSE) roc_neat(aucs_list, cutoff_custom = list(.1, c(-.5, 0), NULL, c(.7, 1.6)), cutoff_auto = FALSE) roc_neat(aucs_list, cutoff_custom = list(.6, NULL, NULL, 1.1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.