-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
Description
The all-in-one calls are difficult to maintain and to test. For instance all the *.formula methods are a mess. Functions such as ci or auc should not create ROC curves, and the ROC function shouldn't plot and calculate CI.
For instance, replace the following example in ?pROC:
roc(aSAH$outcome,
aSAH$s100b, percent=TRUE,
# 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, print.thres= "best")
By a more modular call such as:
roc.s100b <- roc(aSAH$outcome, aSAH$s100b, percent = TRUE)
auc.s100b <- auc(roc.s100b, partial.auc=c(100, 90), partial.auc.correct=TRUE, partial.auc.focus="sens")
ci.s100b <- ci(auc.s100b, boot.n=100, ci.alpha=0.9, stratified=FALSE)
plot(roc.s100b, grid=TRUE, show.thres = TRUE)
plot(auc.s100b, auc.polygon = TRUE, max.auc.polygon = TRUE, add = TRUE)
plot(ci.s100b, add = TRUE)
This will require some refactoring to add plot.auc and a plot.ci.auc; and probably several more for consistency.
In the long term, consider dropping the partial.auc arguments in ROC and have them only in auc.