Hola,
Gracias, me funciono¡ Echare un vistazo a lo de hacer las ROC dinamicas.

Gracias por la ayuda, un saludo


El 23 de junio de 2014, 16:42, Marta valdes lopez <martavalde...@gmail.com>
escribió:

> 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 <ped...@tid.es>
> 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, r-help-es-requ...@r-project.org 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 <martavalde...@gmail.com> <martavalde...@gmail.com>
>> To: r-help-es@r-project.org
>> 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 
>> listR-help-es@r-project.orghttps://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: pedro.concej...@tid.es
>> <pedro.concej...@tid.es> 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
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a