[R] How to extract auc, specificity and sensitivity

Berend Hasselman bhh at xs4all.nl
Thu Oct 25 21:43:36 CEST 2012


On 25-10-2012, at 21:28, Adel Powell wrote:

> I am running my code in a loop and it does not work but when I run it
> outside the loop I get the values I want.
> 
> n <- 1000; # Sample size
> 
> fitglm <- function(sigma,tau){
>    x <- rnorm(n,0,sigma)
>    intercept <- 0
>    beta <- 0
>    ystar <- intercept+beta*x
>    z <- rbinom(n,1,plogis(ystar))
>    xerr <- x + rnorm(n,0,tau)
>    model<-glm(z ~ xerr, family=binomial(logit))
>    int<-coef(model)[1]
>    slope<-coef(model)[2]
>    pred<-predict(model)
> 
>    result<-ifelse(pred>.5,1,0)
> 
>    accuracy<-length(which(result==z))/length(z)
>    accuracy
> 
>    rocpreds<-prediction(result,z)
>    auc<-performance(rocpreds,"auc")@y.values
>    sentiv<-performance(rocpreds,"sens")@y.values
>    sentiv<-slot(fp,"y.values")[[1]]
>    sentiv<-sentiv[2]
>    sentiv
>    specs<-performance(rocpreds,"spec")@y.values
>    specs<-slot(fp2,"y.values")[[1]]
>    specs<-specs[2]
>    specs
>    output<-c(int,slope,.5,accuracy,auc,sentiv,specs)
> 
> names(output)<-c("Intercept","Slope","CutPoint","Accuracy","AUC","Sentivity",Specificity")

A missing " before Specificity?

>    return(output)
> 
> }
> 
> y<-fitglm(.05,1)
> y
> 

Running this after correction of the missing "  one gets en error

Error in fitglm(0.05, 1) : could not find function "prediction"

How are you using a loop?
Your example is not reproducible.

Berend


> 
> The code runs without the sentiv and specs but when I remove the loop i can
> get the sensitivity and spec. values ???
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list