Как построить кривую 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)
Ось 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, ' ) '))
Обратите внимание, что вы также можете изменить тему сюжета:
#create ROC plot with minimal theme ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) + theme_minimal()
В этой статье вы найдете руководство по лучшим темам ggplot2.