Как рассчитать 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, это указывает на то, что модель очень хорошо прогнозирует, не выполнит ли человек дефолт по своему кредиту.

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

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