Як розрахувати auc (площу під кривою) в r
Логістична регресія – це статистичний метод, який ми використовуємо для підгонки регресійної моделі, коли змінна відповіді є двійковою. Щоб оцінити, наскільки модель логістичної регресії відповідає набору даних, ми можемо розглянути такі два показники:
- Чутливість: ймовірність того, що модель передбачає позитивний результат для спостереження, коли результат насправді позитивний. Це також називається «справжній позитивний показник».
- Специфічність: ймовірність того, що модель передбачає негативний результат для спостереження, коли результат насправді негативний. Це також називається «справжній негативний показник».
Одним із способів візуалізації цих двох вимірювань є створення кривої ROC , що означає криву «робоча характеристика приймача».
Це графік, який відображає чутливість по осі y та (1 – специфічність) по осі x. Одним із способів кількісної оцінки ефективності моделі логістичної регресії для класифікації даних є обчислення AUC , що означає «площа під кривою».
Чим ближче AUC до 1, тим краща модель.
Наступний покроковий приклад показує, як обчислити AUC для моделі логістичної регресії в R.
Крок 1. Завантажте дані
По-перше, ми завантажимо набір даних за замовчуванням із пакета ISLR , який містить інформацію про те, чи прострочили різні люди кредит.
#load dataset data <- ISLR::Default #view first six rows of dataset head(data) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
Крок 2: Підгонка моделі логістичної регресії
Далі ми підберемо модель логістичної регресії, щоб передбачити ймовірність того, що особа не виконає зобов’язання:
#make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set 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 model <- glm(default~student+balance+income, family=" binomial ", data=train)
Крок 3: Обчисліть AUC моделі
Далі ми використаємо функцію auc() із пакету pROC для обчислення AUC моделі. Ця функція використовує такий синтаксис:
немає (відповідь, передбачено)
Ось як використовувати цю функцію в нашому прикладі:
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type=" response ") #calculate AUC library (pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < boxes Area under the curve: 0.9437
AUC моделі виявляється 0,9437 .
Оскільки це значення наближається до 1, це вказує на те, що модель дуже добре справляється з прогнозуванням того, чи особа не виплатить свою позику.