RMSE (Помилка кореневого середнього квадрату) для логістичних моделей


10

У мене виникає питання щодо обґрунтованості використання RMSE (Root Mean Squared Error) для порівняння різних логістичних моделей. Відповідь є 0або, 1і прогнози є ймовірністю між 0- 1?

Чи справедливий спосіб, застосований нижче, і для двійкових відповідей?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714

1
В цьому випадку вона називається рахунок Шипшина см actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Відповіді:


14

Щоб зрозуміти, чому "[t] відповідь - це 0або 1[, але прогнози - ймовірності між 0- 1", вам потрібно зрозуміти тип моделі, з якою ви працюєте. Скасуйте методи пеналізації та перехресну валідацію, і ви ведете основну логістичну регресію. Параметри підходять за шкалою журналу коефіцієнт / логістика. Це називається "лінійним предиктором". (Докладніше про це може допомогти вам прочитати мою відповідь тут: Різниця між моделями logit і probit .) Якщо ви підключите значення x і спростите, це значення буде прогнозованим природним логарифмом моделі шансів на 'успіх' ( 1). Якщо ви експонували це значення, у вас були б прогнозовані шанси моделі"успіху". Щоб отримати прогнозовану ймовірність , вам потрібно буде перетворити шанси на ймовірність за допомогою коефіцієнтів / (1 + коефіцієнт). (Докладніше про це, можливо, вам допоможе прочитати мою відповідь тут: Інтерпретація простих прогнозів та коефіцієнтів шансів у логістичній регресії .) Це все ще не приведе вас до передбачуваного класу . Для цього вам слід порівняти передбачувану ймовірність з деяким порогом, і якщо вона буде меншою за поріг, передбачте "провал" ( 0), інакше "успіх" ( 1). Найпоширеніший поріг за замовчуванням - 0,5, але це часто не є оптимальним. predict.glm()Функція R дозволить вам використовуватиtype="link", який виводить прогнози за шкалою лінійного предиктора (тобто перед усіма цими перетвореннями вище), але це не допоможе вам у цьому контексті. Використання type="response"дає передбачувані ймовірності.


Коли ви намагаєтесь оцінити, наскільки добре двійкова (наприклад, логістична) модель регресії прогнозує відповідь, у вас є кілька варіантів:

  1. Перше і найінтуїтивніше - порівняти передбачуваний клас із спостережуваним класом та обчислити відсоток правильним. Хоча це інтуїтивно, але у нього є проблеми. Частково це залежить від того, щоб поріг був оптимальним на додаток до відповідних інших аспектів моделі. Він також викидає багато інформації (тобто, наскільки далеко від порогу передбачена передбачувана ймовірність), що робити не дуже добре.
  2. Наступним варіантом є використання області під кривою експлуатаційної характеристики приймача (ROC). Більшість людей використовують цей варіант; це значно краще, ніж використовувати відсоток правильно. Що в AUC, що більшість людей не усвідомлює, полягає в тому, що він насправді вимірює відповідне впорядкування ваших прогнозів, а не їх фактичну точність. Тобто, якби ви передбачили ймовірності на чотири спостереження .2, .4, .6, .8, і ви додали .01 до всіх (( .21, .41, .61, .81), AUC був би однаковим, хоча обидва набори прогнозованих ймовірностей не можуть бути однаково точними.
  3. Третім способом оцінки вашої моделі було б використання належної функції балів. Мабуть, найпопулярніша оцінка у вашому контексті - оцінка Brier . Як зазначає @fcoppens, метод у вашому коді - оцінка Brier. Він оцінить не тільки, якщо модель належним чином передбачає, що одне спостереження скоріше буде «успіхом», ніж інше спостереження, але якщо передбачувана ймовірність моделі насправді правильна.

Прикро, що оцінка Brier менш відома і використовується. Хоча відносна інтуїтивність цих методів така: відсоток правильний> AUC> Brier score, їх справжня інформативність є протилежною: Brier score> AUC> відсоток правильний. Якщо ви хочете лише простий показник продуктивності вашої моделі, відмінність цих методів є менш важливим, але якщо ви хочете використовувати ці методи для оптимізації моделі або вибору моделі, використання неповноцінного методу призведе до зниження продуктивності .


1

Використання RMSE має набагато більше сенсу, якщо ваш термін помилки розподіляється нормально із середнім нулем, але у двійкових результатах це не так. Тому я думаю, що вам слід використовувати різні підходи, що піддаються двобічним результатам, як порівняння різниць у ймовірності.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.