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