Як побудувати криву 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

На осі ординат відображається чутливість (справжній позитивний коефіцієнт) моделі, а на осі х – специфічність (справжній негативний коефіцієнт) моделі.

Зауважте, що ми можемо додати стиль до графіка, а також надати назву, що містить 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.

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *