are.paired: Are two ROC curves paired?

View source: R/are.paired.R

are.pairedR Documentation

Are two ROC curves paired?

Description

This function determines if two ROC curves can be paired.

Usage

are.paired(...)
## S3 method for class 'auc'
are.paired(roc1, roc2, ...)
## S3 method for class 'smooth.roc'
are.paired(roc1, roc2, ...)
## S3 method for class 'roc'
are.paired(roc1, roc2, return.paired.rocs=FALSE,
  reuse.auc = TRUE, reuse.ci = FALSE, reuse.smooth=TRUE, ...)

Arguments

roc1, roc2

the two ROC curves to compare. Either “roc”, “auc” or “smooth.roc” objects (types can be mixed).

return.paired.rocs

if TRUE and the ROC curves can be paired, the two paired ROC curves with NAs removed will be returned.

reuse.auc, reuse.ci, reuse.smooth

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

Details

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 responses are different, this can be due to missing values differing between the curves. In this case, the function will strip all NAs in both curves and check for identity again.

It can raise false positives if the responses are identical but correspond to different patients.

Value

TRUE if roc1 and roc2 are paired, FALSE otherwise.

In addition, if TRUE and return.paired.rocs=TRUE, the following atributes are defined:

roc1, roc2

the two ROC curve with all NAs values removed in both curves.

See Also

roc, roc.test

Examples

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")


pROC documentation built on Nov. 2, 2023, 6:05 p.m.