RMSE (Root Mean Squared Error) dla modeli logistycznych

10

Mam pytanie dotyczące zasadności korzystania z RMSE (Root Mean Squared Error) do porównywania różnych modeli logistycznych. Odpowiedź jest albo 0czy 1i przewidywania prawdopodobieństwa są między 0- 1?

Czy sposób zastosowany poniżej jest również prawidłowy w przypadku odpowiedzi binarnych?

# 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
Ahmed El-Gabbas
źródło
1
W tym przypadku jest nazywana wynik Brier, zobacz actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Odpowiedzi:

14

Aby zrozumieć, dlaczego „[p] Odpowiedź jest albo 0lub 1[ale] są przewidywania prawdopodobieństwa między 0- 1” trzeba zrozumieć rodzaj modelu pracujesz. Pozbądź się metod penalizacji i weryfikacji krzyżowej, a uruchomisz podstawową regresję logistyczną. Parametry są dopasowane do logarytmicznych szans / skali logistycznej. Nazywa się to „predyktorem liniowym”. (Aby uzyskać więcej informacji na ten temat, możesz przeczytać moją odpowiedź tutaj: Różnica między modelami logit i probit ). Jeśli podłączysz wartość x i uprościsz, wartość będzie przewidywanym naturalnym logarytmem modelu prawdopodobieństwa „sukcesu” ( 1). Jeśli potęgujesz tę wartość, uzyskasz przewidywane szanse modelusukcesu'. Aby uzyskać przewidywane prawdopodobieństwo , musisz przekonwertować szanse na prawdopodobieństwo za pomocą odds / (1 + odds). (Aby uzyskać więcej informacji na ten temat, może pomóc ci przeczytać moją odpowiedź tutaj: Interpretacja prostych prognoz na iloraz szans w regresji logistycznej .) To wciąż nie prowadzi cię do przewidywanej klasy . Aby to osiągnąć, należy porównać przewidywane prawdopodobieństwo z pewnym progiem, a jeśli jest ono niższe niż próg, należy przewidzieć „awarię” ( 0), w przeciwnym razie „sukces” ( 1). Najczęstszym domyślnym progiem jest 0,5, ale często nie jest to optymalne. predict.glm()Funkcja R pozwoli ci użyćtype="link", który generuje prognozy w skali predyktora liniowego (tj. przed wszystkimi powyższymi transformacjami), ale to nie pomoże ci w tym kontekście. Używanie type="response"daje przewidywane prawdopodobieństwa.


Kiedy próbujesz ocenić, jak dobrze model regresji binarnej (np. Logistycznej) przewiduje odpowiedź, masz kilka opcji:

  1. Pierwszym i najbardziej intuicyjnym jest porównanie przewidywanej klasy z klasą obserwowaną i obliczenie procentu poprawności. Chociaż jest intuicyjny, ma problemy. Zależy to częściowo od tego, czy próg jest optymalny, a inne aspekty modelu są odpowiednio dopasowane. Wyrzuca także wiele informacji (tj. Jak daleko od progu jest przewidywane prawdopodobieństwo), co nie jest dobrym rozwiązaniem.
  2. Następną opcją jest użycie obszaru pod krzywą Charakterystyka pracy odbiornika (ROC). Większość osób korzysta z tej opcji; jest znacznie lepszy niż poprawny procent. Rzecz w AUC, której większość ludzi nie zdaje sobie sprawy, jest to, że mierzy ona właściwie kolejność twoich prognoz, a nie ich rzeczywistą dokładność. Oznacza to, że jeśli przewidziałeś prawdopodobieństwa dla czterech obserwacji .2, .4, .6, .8i dodałeś 0,01 do wszystkich z nich ( .21, .41, .61, .81), AUC byłby taki sam, mimo że oba zestawy przewidywanych prawdopodobieństw nie mogą być równie dokładne.
  3. Trzecim sposobem oceny modelu byłoby użycie odpowiedniej funkcji punktacji. Być może najbardziej popularną funkcją punktacji w twoim kontekście jest wynik Briera . Jak zauważa @fcoppens, metodą w kodzie jest wynik Briera. Ocenia nie tylko to, czy model odpowiednio przewiduje, że jedna obserwacja będzie bardziej „sukcesem” niż inna obserwacja, ale czy przewidywane prawdopodobieństwo modelu jest rzeczywiście prawidłowe.

Szkoda, że ​​wynik Briera jest mniej znany i wykorzystywany. Chociaż względna intuicyjność tych metod jest następująca: procent poprawności> AUC> wynik Briera, ich prawdziwa informatywność jest odwrotna: wynik Briera> AUC> procent poprawności. Jeśli chcesz tylko prostej miary wydajności swojego modelu, rozróżnienie między tymi metodami jest mniej ważne, ale jeśli chcesz użyć tych metod do optymalizacji modelu lub wyboru modelu, użycie gorszej metody doprowadzi do gorszej wydajności .

gung - Przywróć Monikę
źródło
1

Korzystanie z RMSE ma o wiele większy sens, jeśli termin błędu jest rozkładany normalnie ze średnią zero, ale w wynikach binarnych tak nie jest. Dlatego uważam, że powinieneś stosować różne podejścia, które nadają się do wyników binarnych, na przykład porównując różnice w prawdopodobieństwie.

JorgeG
źródło