Cómo trazar una curva ROC usando ggplot2 (con ejemplos)

La regresión logística es un método estadístico que utilizamos para ajustar un modelo de regresión cuando la variable de respuesta es binaria. Para evaluar qué tan bien se ajusta un modelo de regresión logística a un conjunto de datos, podemos observar las siguientes dos métricas:

  • Sensibilidad: la probabilidad de que el modelo prediga un resultado positivo para una observación cuando en realidad el resultado es positivo.
  • Especificidad: La probabilidad de que el modelo prediga un resultado negativo para una observación cuando en realidad el resultado es negativo.

Una forma fácil de visualizar estas dos métricas es creando una curva ROC , que es un gráfico que muestra la sensibilidad y especificidad de un modelo de regresión logística.

Este tutorial explica cómo crear e interpretar una curva ROC en R usando el paquete de visualización ggplot2.

Ejemplo: curva ROC con ggplot2

Supongamos que ajustamos el siguiente modelo de regresión logística en R:

#load conjunto de datos predeterminado del libro ISLR
datos <- ISLR :: Predeterminado

#divide el conjunto de datos en conjunto de entrenamiento y de prueba
 set.seed (1)
muestra <- muestra (c ( VERDADERO , FALSO ), nrow (datos), reemplazar = VERDADERO , prob = c (0.7,0.3))
entrenar <- datos [muestra,]
prueba <- datos [! muestra,]

#ajustar el modelo de regresión logística al modelo del conjunto de entrenamiento 
<- glm (predeterminado ~ estudiante + saldo + ingresos, familia = " binomio ", datos = tren)

#utilizar modelo para hacer predicciones en el conjunto de prueba 
predicho <- predecir (modelo, prueba, tipo = " respuesta ")

Para visualizar qué tan bien se desempeña el modelo de regresión logística en el conjunto de prueba, podemos crear una gráfica ROC usando la función ggroc () del paquete pROC :

#cargar 
biblioteca de paquetes necesarios (ggplot2)
 biblioteca (pROC)

#define object to plot
 rocobj <- roc (prueba $ predeterminado, predicho)

#create ROC plot
ggroc (rocobj)

Curva ROC en ggplot2

El eje y muestra la sensibilidad (la verdadera tasa positiva) del modelo y el eje x muestra la especificidad (la verdadera tasa negativa) del modelo.

Tenga en cuenta que podemos agregar algo de estilo al gráfico y también proporcionar un título que contenga el AUC (área bajo la curva) del gráfico:

#cargar 
biblioteca de paquetes necesarios (ggplot2)
 biblioteca (pROC)

#define objeto para trazar y calcular AUC
 rocobj <- roc (prueba $ predeterminado, predicho)
auc <- round (auc (prueba $ predeterminado, predicho), 4 )

#create ROC plot
 ggroc (rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle ( paste0 (' Curva ROC ', ' (AUC = ', auc, ' ) '))

Curva ROC con AUC en ggplot2

Tenga en cuenta que también podemos modificar el tema de la trama:

#create una trama ROC con un tema mínimo
 ggroc (rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle ( paste0 (' Curva ROC ', ' (AUC = ', auc, ' ) ')) +
  theme_minimal ()

Curva ROC en R usando ggplot2

Consulte este artículo para obtener una guía de los mejores temas de ggplot2.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Un gráfico circular es un gráfico circular que utiliza "sectores circulares" para mostrar los tamaños relativos de los datos. Este…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!