Last chance! 50% off unlimited learning
Sale ends in
This function determines if two ROC curves can be paired.
are.paired(...)
# S3 method for auc
are.paired(roc1, roc2, ...)
# S3 method for smooth.roc
are.paired(roc1, roc2, ...)
# S3 method for roc
are.paired(roc1, roc2, return.paired.rocs=FALSE,
reuse.auc = TRUE, reuse.ci = FALSE, reuse.smooth=TRUE, ...)
TRUE
if roc1
and roc2
are paired, FALSE
otherwise.
In addition, if TRUE
and return.paired.rocs=TRUE
, the
following atributes are defined:
the two ROC curve with all NA
s values removed
in both curves.
the two ROC curves to compare. Either “roc”, “auc” or “smooth.roc” objects (types can be mixed).
if TRUE
and the ROC curves can be
paired, the two paired ROC curves with NA
s removed will be
returned.
if return.paired.rocs=TRUE
, determines if auc
,
ci
and smooth
should be re-computed
(with the same parameters than the original ROC curves)
additionnal arguments for are.paired.roc
. Ignored
in are.paired.roc
Two ROC curves are paired if they are built on two variables observed on the same sample.
In practice, the paired status is granted if the response
and levels
vector
of both ROC curves are identical. If the response
s are different, this can be
due to missing values differing between the curves. In this case, the
function will strip all NA
s in both curves and check for
identity again.
It can raise false positives if the responses are identical but correspond to different patients.
roc
, roc.test
data(aSAH)
aSAH.copy <- aSAH
# artificially insert NAs for demonstration purposes
aSAH.copy$outcome[42] <- NA
aSAH.copy$s100b[24] <- NA
aSAH.copy$ndka[1:10] <- NA
# Call roc() on the whole data
roc1 <- roc(aSAH.copy$outcome, aSAH.copy$s100b)
roc2 <- roc(aSAH.copy$outcome, aSAH.copy$ndka)
# are.paired can still find that the curves were paired
are.paired(roc1, roc2) # TRUE
# Removing the NAs manually before passing to roc() un-pairs the ROC curves
nas <- is.na(aSAH.copy$outcome) | is.na(aSAH.copy$ndka)
roc2b <- roc(aSAH.copy$outcome[!nas], aSAH.copy$ndka[!nas])
are.paired(roc1, roc2b) # FALSE
# Getting the two paired ROC curves with additional smoothing and ci options
roc2$ci <- ci(roc2)
paired <- are.paired(smooth(roc1), roc2, return.paired.rocs=TRUE, reuse.ci=TRUE)
paired.roc1 <- attr(paired, "roc1")
paired.roc2 <- attr(paired, "roc2")
Run the code above in your browser using DataLab