Как построить кривую roc с помощью ggplot2 (с примерами)


Логистическая регрессия — это статистический метод, который мы используем для подбора модели регрессии, когда переменная ответа является двоичной. Чтобы оценить, насколько хорошо модель логистической регрессии соответствует набору данных, мы можем взглянуть на следующие два показателя:

  • Чувствительность: вероятность того, что модель предсказывает положительный результат наблюдения, когда результат на самом деле положительный.
  • Специфичность: вероятность того, что модель предсказывает отрицательный результат наблюдения, хотя на самом деле результат отрицательный.

Простой способ визуализировать эти два показателя — создать кривую ROC , которая представляет собой график, отображающий чувствительность и специфичность модели логистической регрессии.

В этом руководстве объясняется, как создать и интерпретировать кривую ROC в R с помощью пакета визуализации ggplot2.

Пример: кривая ROC с использованием ggplot2

Предположим, мы подгоняем следующую модель логистической регрессии в R:

 #load Default dataset from ISLR book
data <- ISLR::Default

#divide dataset into training and test set
set.seed(1)
sample <- sample(c( TRUE , FALSE ), nrow (data), replace = TRUE , prob =c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ]

#fit logistic regression model to training set
model <- glm(default~student+balance+income, family=" binomial ", data=train)

#use model to make predictions on test set
predicted <- predict(model, test, type=" response ")

Чтобы визуализировать производительность модели логистической регрессии на тестовом наборе, мы можем создать график ROC, используя функцию ggroc() из пакета pROC :

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot
rocobj <- roc(test$default, predicted)

#create ROC plot
ggroc(rocobj) 

Кривая ROC в ggplot2

Ось Y отображает чувствительность (истинно положительный уровень) модели, а ось X отображает специфичность (истинно отрицательный уровень) модели.

Обратите внимание, что мы можем добавить стиль к графику, а также указать заголовок, содержащий AUC (площадь под кривой) графика:

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot and calculate AUC
rocobj <- roc(test$default, predicted)
auc <- round (auc(test$default, predicted), 4 )

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

Кривая ROC с AUC в ggplot2

Обратите внимание, что вы также можете изменить тему сюжета:

 #create ROC plot with minimal theme
ggroc(rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) +
  theme_minimal() 

Кривая ROC в R с использованием ggplot2

В этой статье вы найдете руководство по лучшим темам ggplot2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *