[R] ROCR for combination of markers

Eik Vettorazzi E.Vettorazzi at uke.uni-hamburg.de
Thu Apr 28 20:08:07 CEST 2011


Hi Rasanga,
I think there is nothing wrong with that plot (you may compare both
curves obtained by ROC from Epi and plot.roc from pROC).
As usual, both functions plot (1-specificity) at the x-coordinate
against sensitivity on y. Perhaps a bit confusing is the labelling of
the latter function, it has 'specificity' on x, but the ticks go (in
reading direction) from 100% down to 0% so it is correct - look at the
documentation or the source code of that function to fix it to your needs.
Anyway - the AUC is (up to changes in sign) invariant to interchanging
spec and sens or reversing the values and so is the CI for AUC.

cheers.

Am 28.04.2011 19:54, schrieb Rasanga Ruwanthi:
> Hi Eik
>  
> It seems plot.roc function below plots sensitivity vs specificity, but
> not (1-sensitivity) vs specificity. As you said it gives CIs of AUC, but
> is there a way to get it for  (1-sensitivity) vs specificity?
>  
> Thanks
> 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" <r-help at r-project.org>
>     Date: Thursday, 28 April, 2011, 17:36
> 
>     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
>     <http://uk.mc1120.mail.yahoo.com/mc/compose?to=E.Vettorazzi@uke.uni-hamburg.de>>/*
>     wrote:
>     >
>     >
>     >     From: Eik Vettorazzi <E.Vettorazzi at uke.uni-hamburg.de
>     <http://uk.mc1120.mail.yahoo.com/mc/compose?to=E.Vettorazzi@uke.uni-hamburg.de>>
>     >     Subject: Re: [R] ROCR for combination of markers
>     >     To: "Rasanga Ruwanthi" <ruwanthi_kdr at yahoo.com
>     <http://uk.mc1120.mail.yahoo.com/mc/compose?to=ruwanthi_kdr@yahoo.com>>
>     >     Cc: r-help at r-project.org
>     <http://uk.mc1120.mail.yahoo.com/mc/compose?to=r-help@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>
>     > 
>        <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>
>     >     <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