[R] ROCR for combination of markers

Eik Vettorazzi E.Vettorazzi at uke.uni-hamburg.de
Thu Apr 28 17:36:46 CEST 2011


Hi,
today I accidentally stumbled on a new? package named 'pROC', which
might do the job

library(pROC)

out=ROC( form = y1 ~ x + z, plot="ROC")

#calculate the underlying glm from ROC
prd<-predict(glm(y1 ~ x + z,family="binomial"),type="response")

#or use the results from ROC
prd<-out$res$lr.eta[-1]

rocobj <- plot.roc(y1, prd,
                main="Confidence intervals", percent=TRUE,
                ci=TRUE, # compute AUC (of AUC by default)
                print.auc=TRUE) # print the AUC (will contain the CI)
ciobj <- ci.se(rocobj, # CI of sensitivity
               specificities=seq(0, 100, 5)) # over a select set of
specificities
plot(ciobj, type="shape", col="#1c61b6AA") # plot as a blue shape

cheers


Am 28.04.2011 17:15, schrieb Rasanga Ruwanthi:
> Many thanks Eik. That was really helpful. I have found ROC function Epi
> package draws ROC curve for a combination of markers. What I tried was
>  
> library(Epi)
> x <- rnorm( 100 )
> z <- rnorm( 100 )
> w <- rnorm( 100 )
> tigol <- function( x ) 1 - ( 1 + exp( x ) )^(-1)
> y1 <- rbinom( 100, 1, tigol( 0.3 + 3*x + 5*z + 7*w ) )
> out=ROC( form = y1 ~ x + z, plot="ROC",MI=FALSE)
>  
> But this function does not produce SE or CI of the AUC or any other
> statistics. Any suggestion to get these?
>  
> Thanks again
> Rasanga
> 
> 
> --- On *Thu, 28/4/11, Eik Vettorazzi
> /<E.Vettorazzi at uke.uni-hamburg.de>/* wrote:
> 
> 
>     From: Eik Vettorazzi <E.Vettorazzi at uke.uni-hamburg.de>
>     Subject: Re: [R] ROCR for combination of markers
>     To: "Rasanga Ruwanthi" <ruwanthi_kdr at yahoo.com>
>     Cc: r-help at r-project.org
>     Date: Thursday, 28 April, 2011, 13:11
> 
>     ... and additionally, 'ROC' from the Epi package does the second step
>     all in one.
> 
>     Am 28.04.2011 13:01, schrieb Eik Vettorazzi:
>     > Hi Rasanga,
>     > you may have a look at the 'improveProb' function from the Hmisc
>     > package. There you can compare the increase in prognostic power for
>     > several combinations of markers. You can create a ROC curve for a
>     > combination of markers by using the predicted risks eg. from a
>     logistic
>     > regression model.
>     >
>     > To compare ROC curves of competing markers you can use 'roc.area.test'
>     > from the 'clinfun' package or 'hanley' from gcl.
>     >
>     > hth.
>     >
>     >
>     > Am 27.04.2011 23:17, schrieb Rasanga Ruwanthi:
>     >> Dear list
>     >> 
>     >> I have 5 markers that can be used to detect an infection in
>     combination. Could you please advise me how to use functions in
>     ROCR/ other package to produce the ROC curve for a combination of
>     markers?
>     >> 
>     >> I have used the following to get ROC statistics for each marker.
>     >> pred <- prediction(y$marker1, y$infectn)
>     >> perf <-performance(pred,"tpr","fpr")
>     >> plot(perf,ave="threshold",spread.estimate="boxplot")
>     >>
>     >> But I want know whether we could get this for more than one
>     marker, so we can look at how good the markers in combination to
>     predict the infection. I'm very grateful for any suggestion/help.
>     >> 
>     >> Thanks
>     >> Rasanga
>     >> 
>     >>
>     >>     [[alternative HTML version deleted]]
>     >>
>     >>
>     >>
>     >>
>     >> ______________________________________________
>     >> R-help at r-project.org
>     <http://uk.mc1120.mail.yahoo.com/mc/compose?to=R-help@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
>     <http://www.r-project.org/posting-guide.html>
>     >> and provide commented, minimal, self-contained, reproducible code.
>     >
> 


-- 
Eik Vettorazzi

Department of Medical Biometry and Epidemiology
University Medical Center Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/7410-58243
F ++49/40/7410-57790



More information about the R-help mailing list