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