Learn R Programming

pROC (version 1.3.1)

are.paired: 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.roc should be re-computed (with
...
additionnal arguments for are.paired.roc. Ignored in are.paired.roc

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, roc2the two ROC curve with all NAs values removed in both curves.

encoding

UTF-8

Details

Two ROC curves are paired if they are built on two variables observed on the same sample.

In practice, a good guess is to determine if the response 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.

See Also

roc, roc.test

Examples

Run this code
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