Hola Pedro,

Muchisimas gracias por tu respuesta, me há aclarado mucho. Es  lo que veia
que ya tenia esas tasas en realidad.
Voy a probar lo que me dices y te cuento.

Gracias! un saludo

Marta


El 23 de junio de 2014, 14:32, Pedro Concejero Cerezo <[email protected]>
escribió:

>  Hola, Marta,
> Por lo que he podido ver tus datos ya tienen calculados las tasas de
> verdaderos y falsos positivos (TPR y FPR). También parece que los tienes
> ordenados por la variable FishSpeed y supongo que también por las que
> parecen marcas de tiempo. No necesitas ROCR porque con un simple plot te
> sale algo parecido a una curva. Eso sí, veo que son medidas repetidas en el
> tiempo para cada valor de FishSpeed. Como apaño rápido he promediado por
> esa variable para que salga algo parecido a una curva ROC, lo podrás hacer
> con el código que pongo abajo.
> Te cuento hasta donde sé lo que se puede hacer a partir de aquí:
> - Las librerías especializadas en ROC (ROCR y pROC) suponen que tú le
> pasas cada registro y un resultado 0/1 (fallo/acierto) de tal manera que es
> la propia librería la que se encarga de calcular TPR, FPR (entre otros
> muchos indicadores como los que pones en tu código -ojo que FPR es
> (1-specificity). Con ese cálculo se genera un objeto R que facilita luego
> el dibujo, así como el cálculo de área bajo la curva, etc. Así que si
> tienes los datos en bruto ambas librerías te facilitarán mucho todo el
> proceso.
> - Tanto ROCR como pROC incorporan funciones para ROC estáticas (las
> medidas no son repetidas en el tiempo, se suponen casos independientes).
> ROCR genera gráficos más vistosos (va en gustos y depende de muchas cosas,
> ojo) y quizás sea más fácil de usar. pROC añade montones de funciones para
> comparar y pruebas estadísticas para comparar las curvas entre ellas y
> frente a la predicción nula (la diagonal en el espacio ROC).
> Según parece, tus datos son dinámicos (se repiten en intervalos para cada
> medida de FIshSpeed), y si lo que quieres es modelizar ROC dinámicas hay
> alternativas en R (pero este enfoque es mucho más complicado que el de ROC
> estática):
> - el paquete survivalROC
> http://cran.r-project.org/web/packages/survivalROC/survivalROC.pdf
> - y risksetROC
> http://cran.r-project.org/web/packages/risksetROC/risksetROC.pdf
>
> El siguiente artículo sobre pROC está muy bien para ver las capacidades de
> la librería: http://www.biomedcentral.com/1471-2105/12/77
>
> #### con tus datos
> # Pon tu directorio de trabajo
> setwd("C:/Users/pedroc/Downloads")
>
> list.files()
>
> # Lees el fichero, ojo al separador decimal
> rocdata <- read.table(file = "roc.csv",
>                       header = T,
>                       sep = ";",
>                       dec = ",")
>
> # Convertimos los FP Y TP a porcentajes entre 0 y 1
> rocdata$FP <- gsub("%", "", rocdata$FP)
> rocdata$FP <- gsub(",", ".", rocdata$FP)
> rocdata$FP <- as.numeric(rocdata$FP)/100
>
>
> rocdata$TP <- gsub("%", "", rocdata$TP)
> rocdata$TP <- gsub(",", ".", rocdata$TP)
> rocdata$TP <- as.numeric(rocdata$TP)/100
>
> # Resulta interesante tener FishSpeed como factor
> rocdata$FishSpeed <- as.factor(rocdata$FishSpeed)
> summary(rocdata)
>
> # Estas son tus curvas ROC tal y como vienen ordenadas (por FishSpeed y
> supongo que por alguna de tiempo)
> # Fíjate que *no* necesitas ROCR
> plot(rocdata$FP, rocdata$TP)
>
>
> # Si promediamos todas las medidas dentro de cada FishSpeed tendremos:
> TPaverage <- tapply(rocdata$TP, rocdata$FishSpeed, mean)
> FPaverage <- tapply(rocdata$FP, rocdata$FishSpeed, mean)
>
> plot.new()
> plot(FPaverage, TPaverage,
>      xlim = c(0,1),
>      ylim = c(0,1),
>      col = "green",
>      type = "l")
>
> abline(0, 1, col = "red")
>
>
> El 20/06/2014 14:12, [email protected] escribió:
>
> Asuntos del día:
>
>    1. Como construir una curva ROC (Marta valdes lopez)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 20 Jun 2014 12:11:56 +0000
> From: Marta valdes lopez <[email protected]> <[email protected]>
> To: [email protected]
> Subject: [R-es] Como construir una curva ROC
> Message-ID:
>       <cae0cxbgak4uu6aphbes0odvyb10x2sdmkc-4alp0h96-uas...@mail.gmail.com> 
> <cae0cxbgak4uu6aphbes0odvyb10x2sdmkc-4alp0h96-uas...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hola!
>
> Tengo que hacer una curva ROC com unos datos que obtuve de hacer una macro
> de excel y aplicar unas reglas, y basicamente tengo que a partir de la
> variacion del tiempo y la velocidad del barco obtengo diferentes
> porcentajes de true positives (TP) y false positives (FP) y con eso deberia
> de construir una curva ROC.
>
> Dada mi ignorância en este tema, no se muy bien por donde empezar , estuve
> mirando los manuales de dos paquetes el ROCR y el pROC, alguien me
> recomienda alguno en particular?
>
> Yen los manuales el script del ROCR para hacer la curva era algo asi:
>
> library(ROCR)
> data(ROCR.simple)
> pred <- prediction( ROCR.simple$predictions, ROCR.simple$labels)
> perf <- performance(pred,"tpr","fpr")
> plot(perf)
> ## precision/recall curve (x-axis: recall, y-axis: precision)
> perf1 <- performance(pred, "prec", "rec")
> plot(perf1)
> ## sensitivity/specificity curve (x-axis: specificity,
> ## y-axis: sensitivity)
> perf1 <- performance(pred, "sens", "spec")
> plot(perf1)
>
> Me parecio mas fácil de entender que el del otro paquete pero no se como
> aplicarlo a mis datos y si voy a obtener lo que quiero, si alguien me puede
> orientar un poco, agradeceria.
>
> Adjunto mis datos para tener una idea.
>
> Muchas gracias, un saludo
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: 
> <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140620/49a6085b/attachment.html>
>  
> <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140620/49a6085b/attachment.html>
> ------------ próxima parte ------------
> A non-text attachment was scrubbed...
> Name: amanhecer ROC csv.csv
> Type: text/csv
> Size: 51489 bytes
> Desc: no disponible
> URL: 
> <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140620/49a6085b/attachment.bin>
>  
> <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140620/49a6085b/attachment.bin>
>
> ------------------------------
>
> _______________________________________________
> R-help-es mailing 
> [email protected]https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> Fin de Resumen de R-help-es, Vol 64, Envío 33
> *********************************************
>
>
>
> --
>
>
>
>
>
>
> *Pedro Concejero BI & Big Data - Internal Exploitation - Telefónica CCDO &
> Telefónica I+D <http://www.tid.es> E-mail: [email protected]
> <[email protected]> skype: pedro.concejero twitter: @ConcejeroPedro
> linkedin <http://www.linkedin.com/in/pedroconcejero/es> Únete a la lista R
> en español <https://stat.ethz.ch/mailman/listinfo/r-help-es#%21> y a tu
> gRupo local R, el mío es el gRupo R madRid
> <http://r-es.org/Grupo+de+Inter%C3%A9s+Local+de+Madrid+-+GIL+Madrid&structure=Comunidad>*
>
> ------------------------------
>
> Este mensaje se dirige exclusivamente a su destinatario. Puede consultar
> nuestra política de envío y recepción de correo electrónico en el enlace
> situado más abajo.
> This message is intended exclusively for its addressee. We only send and
> receive email on the basis of the terms set out at:
> http://www.tid.es/ES/PAGINAS/disclaimer.aspx
>

        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a