Як розрахувати 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, це вказує на те, що модель дуже добре справляється з прогнозуванням того, чи особа не виплатить свою позику.

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

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