Learn R Programming

ROC (version 1.48.0)

rocdemo.sca: function to build objects of class 'rocc'

Description

rocdemo.sca -- demonstrate 'rocc' class construction using a scalar marker and simple functional rule

Usage

rocdemo.sca(truth, data, rule=NULL, cutpts=NA, markerLabel="unnamed marker", caseLabel="unnamed diagnosis")

Arguments

truth
true classification of objects. Must take values 0 or 1.
data
quantitative markers used to classify
rule
rule: a function with arguments (x, thresh) returning 0 or 1. If no rule is provided or the standard rule dxrule.sca is passed, a faster C-based implementation is used to compute sensitivity and specificity.
cutpts
values of thresholds; no NA allowed, or they will be recomputed using smallest gap between data points with distinct values
markerLabel
textual label describing marker
caseLabel
textual label describing classification

Value

an object of S4 class rocc

Details

dxrule.sca is function (x, thresh) ifelse(x > thresh, 1, 0)

The default value of argument cutpts is a point less than min(data), points separating the unique values of data and a point greater than max(data).

References

See Also

AUC

Examples

Run this code
set.seed(123)
R1 <- rocdemo.sca( rbinom(40,1,.3), rnorm(40), caseLabel="new case", markerLabel="demo Marker" )
plot(R1, line=TRUE, show.thresh=TRUE)

truth <- c(0, 1, 0, 1, 1, 0, 1, 1)
data <- c(2, 3, 4, 4, 5, 6, 7, 8)
R2 <- rocdemo.sca(truth, data, dxrule.sca)
plot(R2, line=TRUE, show.thresh=TRUE)
R3 <- rocdemo.sca(truth, data, function(x, thresh) 1 - dxrule.sca(x, thresh))
if (AUC(R2) + AUC(R3) != 1) stop('Sum of AUCs should be 1.')
#
# more involved
#
set.seed(1234)
x = runif(1000)
w = runif(1000)
z = rbinom(1000, 1, plogis(-2.7+6.2*x + .3*w))
m1 = glm(z~x, fam=binomial)
demorule.glm.clo = function(model) function(w,thresh)
 ifelse(predict(model, newdata=list(x=w), type="response")>thresh, 1, 0)
demorule.glm = demorule.glm.clo(m1)
R4 = rocdemo.sca(z, x, demorule.glm )
plot(R4)
  

Run the code above in your browser using DataLab