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]<mailto:[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]><mailto:[email protected]>
To: [email protected]<mailto:[email protected]>
Subject: [R-es] Como construir una curva ROC
Message-ID:
        
<cae0cxbgak4uu6aphbes0odvyb10x2sdmkc-4alp0h96-uas...@mail.gmail.com><mailto: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 list
[email protected]<mailto:[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]<mailto:[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