The part
function takes an S3
object generated by
evalmod
and calculate partial AUCs and Standardized partial
AUCs of ROC and Precision-Recall curves.
Standardized pAUCs are standardized to the range between 0 and 1.
part(curves, xlim = NULL, ylim = NULL, curvetype = NULL)
# S3 method for sscurves
part(curves, xlim = c(0, 1), ylim = c(0, 1), curvetype = c("ROC", "PRC"))
# S3 method for mscurves
part(curves, xlim = c(0, 1), ylim = c(0, 1), curvetype = c("ROC", "PRC"))
# S3 method for smcurves
part(curves, xlim = c(0, 1), ylim = c(0, 1), curvetype = c("ROC", "PRC"))
# S3 method for mmcurves
part(curves, xlim = c(0, 1), ylim = c(0, 1), curvetype = c("ROC", "PRC"))
An S3
object generated by evalmod
.
The part
function accepts the following S3 objects.
S3 object | # of models | # of test datasets |
sscurves | single | single |
mscurves | multiple | single |
smcurves | single | multiple |
mmcurves | multiple | multiple |
See the Value section of evalmod
for more details.
A numeric vector of length two to specify x range between two points in [0, 1]
A numeric vector of length two to specify y range between two points in [0, 1]
A character vector with the following curve types.
curvetype | description |
ROC | ROC curve |
PRC | Precision-Recall curve |
Multiple curvetype
can be combined, such as
c("ROC", "PRC")
.
The part
function returns the same S3 object specified as
input with calculated pAUCs and standardized pAUCs.
if (FALSE) {
## Load library
library(ggplot2)
##################################################
### Single model & single test dataset
###
## Load a dataset with 10 positives and 10 negatives
data(P10N10)
## Generate an sscurve object that contains ROC and Precision-Recall curves
sscurves <- evalmod(scores = P10N10$scores, labels = P10N10$labels)
## Calculate partial AUCs
sscurves.part <- part(sscurves, xlim = c(0.25, 0.75))
## Show AUCs
sscurves.part
## Plot partial curve
plot(sscurves.part)
## Plot partial curve with ggplot
autoplot(sscurves.part)
##################################################
### Multiple models & single test dataset
###
## Create sample datasets with 100 positives and 100 negatives
samps <- create_sim_samples(1, 100, 100, "all")
mdat <- mmdata(samps[["scores"]], samps[["labels"]],
modnames = samps[["modnames"]]
)
## Generate an mscurve object that contains ROC and Precision-Recall curves
mscurves <- evalmod(mdat)
## Calculate partial AUCs
mscurves.part <- part(mscurves, xlim = c(0, 0.75), ylim = c(0.25, 0.75))
## Show AUCs
mscurves.part
## Plot partial curves
plot(mscurves.part)
## Plot partial curves with ggplot
autoplot(mscurves.part)
##################################################
### Single model & multiple test datasets
###
## Create sample datasets with 100 positives and 100 negatives
samps <- create_sim_samples(4, 100, 100, "good_er")
mdat <- mmdata(samps[["scores"]], samps[["labels"]],
modnames = samps[["modnames"]],
dsids = samps[["dsids"]]
)
## Generate an smcurve object that contains ROC and Precision-Recall curves
smcurves <- evalmod(mdat)
## Calculate partial AUCs
smcurves.part <- part(smcurves, xlim = c(0.25, 0.75))
## Show AUCs
smcurves.part
## Plot partial curve
plot(smcurves.part)
## Plot partial curve with ggplot
autoplot(smcurves.part)
##################################################
### Multiple models & multiple test datasets
###
## Create sample datasets with 100 positives and 100 negatives
samps <- create_sim_samples(4, 100, 100, "all")
mdat <- mmdata(samps[["scores"]], samps[["labels"]],
modnames = samps[["modnames"]],
dsids = samps[["dsids"]]
)
## Generate an mscurve object that contains ROC and Precision-Recall curves
mmcurves <- evalmod(mdat, raw_curves = TRUE)
## Calculate partial AUCs
mmcurves.part <- part(mmcurves, xlim = c(0, 0.25))
## Show AUCs
mmcurves.part
## Plot partial curves
plot(mmcurves.part)
## Plot partial curves with ggplot
autoplot(mmcurves.part)
}