R/roc.area.Daim.R In Daim: Diagnostic accuracy of classification models.

Documented in roc.arearoc.area.Daimroc.area.Daim.listroc.area.Daim.vector

```roc.area <- function(x, ...) UseMethod("roc.area")

roc.area.Daim <- function(x, method=NULL, col="red", area.color=rgb(1,0,0,alpha=0.5),
xlab="False positive rate", ylab="True positive rate",
{
if(class(x)[2] != "cv"){
if(is.null(method))
method <- "0.632+"
meth <- charmatch(method,c("0.632+","0.632","loob","sample"))
all.roc <- FALSE
if(meth == 4)
all.roc <- TRUE
plot(-1,-1, xlim=c(0,1), ylim=c(0,1), xlab=xlab, ylab=ylab,
main=paste("Method -",method))
}
if(all.roc){
for(i in 1:length(x\$all.roc)){
polygon(c(1,x\$all.roc[[i]][,1],0),c(0,x\$all.roc[[i]][,2],0),col=area.color, ...)
lines(x\$all.roc[[i]],col=col, ...)
points(x\$all.roc[[i]],col=col, ...)
}
}
if(meth == 1){
polygon(c(1,1-x\$roc\$spec632p,0), c(0,x\$roc\$sens632p,0), col=area.color,
density=density,angle=angle, border=border, ...)
lines(1-x\$roc\$spec632p,x\$roc\$sens632p,col=col, ...)
points(1-x\$roc\$spec632p,x\$roc\$sens632p,col=col, ...)
}
else if(meth == 2){
polygon(c(1,1-x\$roc\$spec632,0), c(0,x\$roc\$sens632,0), col=area.color,
density=density, angle=angle, border=border, ...)
lines(1-x\$roc\$spec632,x\$roc\$sens632,col=col, ...)
points(1-x\$roc\$spec632,x\$roc\$sens632,col=col, ...)
}
else if(meth == 3){
polygon(c(1,1-x\$roc\$specloob,0), c(0,x\$roc\$sensloob,0), col=area.color,
density=density,angle=angle, border=border, ...)
lines(1-x\$roc\$specloob,x\$roc\$sensloob,col=col, ...)
points(1-x\$roc\$specloob,x\$roc\$sensloob,col=col, ...)
}
else if(meth != 4){
stop("\nThe value of 'method' must be one of '.632+', '.632', 'loob' or 'sample' !\n")
}
}
else{
if(is.null(method))
method <- "cv"
meth <- charmatch(method,c("cv","sample"))
all.roc <- FALSE
if(meth == 4)
all.roc <- TRUE
plot(-1,-1, xlim=c(0,1), ylim=c(0,1), xlab=xlab, ylab=ylab,
main=paste("Method -",method))
}
if(all.roc){
for(i in 1:length(x\$all.roc)){
polygon(c(1,x\$all.roc[[i]][,1],0),c(0,x\$all.roc[[i]][,2],0),col=area.color, ...)
lines(x\$all.roc[[i]],col=col, ...)
points(x\$all.roc[[i]],col=col, ...)
}
}
if(meth == 1){
polygon(c(1,1-x\$roc\$specloob,0), c(0,x\$roc\$sensloob,0), col=area.color,
density=density,angle=angle, border=border, ...)
lines(1-x\$roc\$specloob,x\$roc\$sensloob,col=col, ...)
points(1-x\$roc\$specloob,x\$roc\$sensloob,col=col, ...)
}
else if(meth != 2){
stop("\nThe value of 'method' must be one of 'cv' or 'sample' !\n")
}
}
}

roc.area.Daim.list <- function(x, col="black", area.color=rgb(1,0,0,alpha=0.5),
xlab="False positive rate", ylab="True positive rate", main="ROC curves",
{
plot(c(0,1),c(0,1), type="n",xlim=c(0,1), ylim=c(0,1), xlab=xlab, ylab=ylab, main=main)
grid()
}
area.col <- area.color
line.col <- col
for(i in 1:length(x)){
if(length(area.color) > i)
area.col <- area.color[i]
if(length(col) > i)
line.col <- col[i]
best.cut <- which.max((1-x[[i]]\$FPR)+x[[i]]\$TPR-1)
polygon(c(1,x[[i]]\$FPR,0),c(0,x[[i]]\$TPR,0),col=area.col,
density=density,angle=angle, border=border, ...)
lines(x[[i]]\$FPR,x[[i]]\$TPR,col=line.col, ...)
points(x[[i]]\$FPR[best.cut], x[[i]]\$TPR[best.cut], col=line.col, pch=19, ...)
}
}

roc.area.Daim.vector <- function(x, col="red", area.color=rgb(1,0,0,alpha=0.5),
xlab="False positive rate", ylab="True positive rate", main="ROC curve",
{
plot(c(0,1),c(0,1), type="n",xlim=c(0,1), ylim=c(0,1), xlab=xlab, ylab=ylab, main=main)
grid()
}
best.cut <- which.max((1-x\$FPR)+x\$TPR-1)
polygon(c(1,x\$FPR,0),c(0,x\$TPR,0),col=area.color,
density=density,angle=angle, border=border, ...)
lines(x\$FPR,x\$TPR,col=col, ...)
points(x\$FPR[best.cut], x\$TPR[best.cut], col=col, pch=19, ...)
}

roc.area.default <- function(x, ...) {
stop(paste("Do not know how to handle objects of class", class(x)))
}
```

Try the Daim package in your browser

Any scripts or data that you put into this service are public.

Daim documentation built on May 29, 2017, 9:08 a.m.