Me cuesta encontrar una manera de calcular el valor p para el área bajo una característica del operador receptor (ROC). Tengo una variable continua y un resultado de prueba de diagnóstico. Quiero ver si AUROC es estadísticamente significativo.
Encontré muchos paquetes relacionados con curvas ROC: pROC, ROCR, caTools, verificación, Epi. Pero incluso después de pasar muchas horas leyendo la documentación y las pruebas, no pude encontrar cómo. Creo que me lo perdí.
Respuestas:
En su situación, estaría bien trazar una curva ROC y calcular el área bajo esa curva, pero esto debe considerarse como un complemento de su análisis principal, en lugar del análisis primario en sí. En cambio, desea ajustar un modelo de regresión logística .
El modelo de regresión logística vendrá de serie con una prueba del modelo en su conjunto. (En realidad, dado que solo tiene una variable, ese valor p será el mismo que el valor p para la variable de resultado de la prueba). Ese valor p es el que busca. El modelo le permitirá calcular la probabilidad pronosticada de que una observación esté enferma. Una característica de funcionamiento del receptor le indica cómo se compensarán la sensibilidad y la especificidad , si utiliza diferentes umbrales para convertir la probabilidad pronosticada en una clasificación pronosticada. Dado que la probabilidad pronosticada será una función de la variable de resultado de su prueba, también le indica cómo se intercambian si utiliza diferentes valores de resultados de prueba como su umbral.
Si no está muy familiarizado con la regresión logística, hay algunos recursos disponibles en Internet (además de la página de Wikipedia vinculada anteriormente):
R
, el sitio web de ayuda de estadísticas de UCLA es generalmente excelente y tiene una página relevante aquí .fuente
summary(GLM.1)
debería darle lo que necesita, y creo queanova(GLM.1)
lo probará contra el modelo nulo sin que realmente tenga que ajustarlo también. Pero tu camino definitivamente funcionará, sí.Básicamente desea probar H0 = "El AUC es igual a 0.5".
De hecho, esto equivale a decir H0 = "La distribución de los rangos en los dos grupos es igual".
Esta última es la hipótesis nula de la prueba de Mann-Whitney (Wilcoxon) (véase, por ejemplo , Gold, 1999 ).
En otras palabras, puede utilizar con seguridad una prueba de Mann-Whitney-Wilcoxon para responder a su pregunta (ver, por ejemplo, Mason y Graham, 2002 ). Esto es exactamente lo que hace el paquete de verificación mencionado por Franck Dernoncourt.
fuente
Puede usar roc.area () desde la verificación del paquete :
Volverá
$p.value [1] 0.0069930071
fuente
Se pueden comparar dos curvas ROC en pROC usando
roc.test()
. Esto también produce un valor p. Además, el usoroc(..., auc=TRUE, ci=TRUE)
le dará los intervalos de confianza cada vez más bajos junto con el AUC en la salida mientras crea el objeto ROC, lo que puede ser útil.El siguiente es un código de ejemplo que prueba si las millas por galón o el peso de un automóvil predicen mejor el tipo de transmisión con la que viene equipado (automático o manual):
Parece que el peso es un predictor significativamente mejor que el consumo de combustible. Sin embargo, esto está comparando dos curvas, y no una sola curva contra un número como 0.5. Observar el intervalo de confianza para ver si contiene el número 0.5 nos dice si es significativamente diferente, pero no produce un valor p.
fuente