En este artículo, analizaremos cómo calcular el AUC (área bajo la curva) de la curva ROC (característica operativa del receptor) en el lenguaje de programación R.
La curva ROC (Receiver Operating Characteristic) nos ayuda a visualizar la tasa positiva verdadera o la tasa negativa verdadera de una predicción basada en algún modelo. Esto nos ayuda a evaluar qué tan bien se ha ajustado un modelo de regresión a los datos. El AUC (Area under Curve) de esta curva ROC nos ayuda a determinar la especificidad y sensibilidad del modelo. Cuanto más cerca esté el valor de AUC de 1, mejor se ajustará el modelo dado a los datos.
Para crear el objeto de curva ROC (Receiver Operating Characteristic) en el lenguaje R, usamos la función roc() de la biblioteca del paquete pROC. El pROC es un paquete de lenguaje R para mostrar y analizar curvas ROC. La función roc() toma el valor real y predicho como argumento y devuelve un objeto de curva ROC como resultado. Luego, para encontrar el AUC (Área bajo la Curva) de esa curva, usamos la función auc(). La función auc() toma el objeto roc como argumento y devuelve el área bajo la curva de esa curva roc.
Sintaxis:
roc_object <- roc(respuesta, predicción)
Parámetros:
- respuesta: determina el vector que contiene los datos reales.
- predicción: determina el vector que contiene los datos predichos por nuestro modelo.
Ejemplo 1:
El área bajo la curva ROC de un modelo de regresión logística.
R
# load library pCOR library(pROC) # sample data frame df_train <- data.frame( x= c(1,2,3,4,5), y= c(1,5,8,15,26), z=c(0,1,1,0,0)) df_test <- data.frame( x= c(6,7,8), y= c(38,45,72), z=c(0,1,0)) # fit logistic model model <- glm(z ~ x+y, data=df_train) # predicted data prediction <- predict(model, df_test, type="response") # create roc curve roc_object <- roc( df_test$z, prediction) # calculate area under curve auc( roc_object )
Producción:
Setting levels: control = 0, case = 1 Setting direction: controls < cases Area under the curve: 0.5
Ejemplo 2:
El área bajo la curva ROC de un modelo de secuencia de revoluciones.
R
# load library pROC library(pROC) # create sample_data var1 <- c(1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0) # create prediction using seq_along() prediction <- rev(seq_along(var1)) # print area under curve auc( var1, prediction)
Producción:
Setting levels: control = 0, case = 1 Setting direction: controls < cases Area under the curve: 0.83
Publicación traducida automáticamente
Artículo escrito por mishrapriyank17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA