Metryki błędów dla krzyżowej weryfikacji modeli Poissona

29

Sprawdzam krzyżowo model, który próbuje przewidzieć liczbę. Gdyby to był problem z klasyfikacją binarną, obliczyłbym nieoczekiwane AUC, a jeśli byłby to problem regresji, obliczyłbym nieoczekiwanie RMSE lub MAE.

W przypadku modelu Poissona, jakich mierników błędów mogę użyć do oceny „dokładności” prognoz poza próbą? Czy istnieje rozszerzenie AUC Poissona, które sprawdza, jak dobrze prognozy porządkują wartości rzeczywiste?

Wydaje się, że wiele konkursów Kaggle na zliczanie (np. Liczba użytecznych głosów, które otrzyma recenzja yelp lub liczba dni, które pacjent spędza w szpitalu) wykorzystują średni błąd logarytmiczny lub RMLSE.


/ Edycja: Jedną rzeczą, którą robiłem, jest obliczanie decyli przewidywanych wartości, a następnie patrzenie na rzeczywistą liczbę, podzieloną przez decyl. Jeśli decyl 1 jest niski, decyl 10 jest wysoki, a decyle pomiędzy nimi ściśle się zwiększają, nazwałem model „dobrym”, ale miałem problem z określeniem tego procesu i przekonałem się, że jest lepszy podejście.

/ Edycja 2: Szukam formuły, która przyjmuje przewidywane i rzeczywiste wartości i zwraca pewną miarę „błędu” lub „dokładności”. Moim planem jest obliczenie tej funkcji na niezakłóconych danych podczas krzyżowej weryfikacji, a następnie użycie jej do porównania szerokiej gamy modeli (np. Regresja Poissona, losowy las i GBM ).

Na przykład jedną z takich funkcji jest RMSE = sqrt(mean((predicted-actual)^2)). Inną taką funkcją byłaby AUC . Żadna z funkcji nie wydaje się odpowiednia dla danych Poissona.

Zach
źródło
W przypadku modeli Poissona można użyć dewiacji; który jest podobny do MSE, ale lepiej nadaje się do Poissona. Jeśli próbki nie są małe, ważony MSE byłby dość podobny.
Glen_b
@Glen_b jaka jest formuła dewiacji?
Zach.
1
Odchylenie . Jak dopasowujesz swój model Poissona?
Glen_b
Kilka różnych sposobów, od karanej regresji Poissona do GBM. Szukam dobrej miary błędów do porównania różnych modeli. Dzięki za radę.
Zach.
Regresja Poissona powinna przynajmniej automatycznie dać ci dewiację
Glen_b

Odpowiedzi:

37

Istnieje kilka właściwych i ściśle właściwych reguł punktacji dla danych zliczania, których możesz użyć. Reguły punktacji to kary wprowadzone, przy czym jest rozkładem predykcyjnym, wartością obserwowaną. Mają wiele pożądanych właściwości, przede wszystkim dlatego, że prognoza bliższa rzeczywistemu prawdopodobieństwu zawsze będzie podlegać mniejszej karze, a istnieje (unikalna) najlepsza prognoza, i taka jest, gdy przewidywane prawdopodobieństwo pokrywa się z prawdziwym prawdopodobieństwem. Zatem minimalizacja oczekiwań oznacza zgłoszenie prawdziwych prawdopodobieństw. Zobacz także Wikipedię .P y s ( y , P )s(y,P.)P.ys(y,P.)

Często przyjmuje się średnią z tych wszystkich przewidywanych wartości jako

S.=1nja=1ns(y(ja),P.(ja))

Która reguła zależy od twojego celu, ale dam ci szorstką charakterystykę, kiedy każda z nich będzie dobra do użycia.

W dalszej części wykorzystuję dla funkcji predykcyjnej masy prawdopodobieństwa oraz funkcji predykcyjnego rozkładu skumulowanego. A działa na całej obsłudze rozkładu zliczania (tj. ). myśli funkcję wskaźnika. i są średnią i odchyleniem standardowym rozkładu predykcyjnego (które są zwykle bezpośrednio oszacowanymi wielkościami w modelach danych zliczeniowych). Pr ( Y = y ) F ( y ) k 0 , 1 , , I μ σfa(y)Par(Y=y)fa(y)k0,1,,jaμσ

Ściśle właściwe reguły punktacji

  • Wynik Briera : (stabilny dla nierównowagi wielkości w predyktorach )s(y,P.)=-2)fa(y)+kfa2)(k)
  • Wynik Dawida-Sebastianiego : (dobre dla ogólnego wyboru modelu predykcyjnego; stabilne dla nierównowagi wielkości w predyktorach jakościowych)s(y,P.)=(y-μσ)2)+2)logσ
  • Wynik dewiacji : ( jest terminem normalizacyjnym, który zależy tylko od , w modelach Poissona jest zwykle przyjmowany jako dewiacja nasycona; dobry do użycia z szacunkami z ramy ML)g y ys(y,P.)=-2)logfa(y)+solysolyy
  • Wynik logarytmiczny : (bardzo łatwo obliczalny; stabilny dla nierównowagi wielkości w predyktorach jakościowych)s(y,P.)=-logfa(y)
  • prawdopodobieństwa : (dobry do kontrastowania różnych prognoz bardzo wysokich liczb; podatny na nierównowagę wielkości w predyktorach jakościowych)s(y,P.)=k{fa(k)-ja(yk)}2)
  • Wynik sferyczny : (stabilny dla nierównowagi wielkości w predyktorach jakościowych)s(y,P.)=fa(y)kfa2)(k)

Inne reguły punktacji (niezbyt właściwe, ale często stosowane)

  • Wynik błędu bezwzględnego :(niewłaściwy)s(y,P.)=|y-μ|
  • Kwadratowy wynik błędu : (nie jest ściśle właściwy; podatny na wartości odstające; podatny na nierównowagę wielkości w predyktorach jakościowych)s(y,P.)=(y-μ)2)
  • Wynik znormalizowanego błędu kwadratu Pearsona : (nie do końca właściwe; podatne na wartości odstające; można użyć do sprawdzenia, czy model sprawdza, czy wynik uśredniony jest bardzo różny od 1; stabilny dla nierównowagi wielkości w predyktorach jakościowych)s(y,P.)=(y-μσ)2)

Przykładowy kod R dla ściśle właściwych reguł:

library(vcdExtra)
m1 <- glm(Freq ~ mental, family=poisson, data=Mental) 

# scores for the first observation
mu <- predict(m1, type="response")[1]
x  <- Mental$Freq[1]

# logarithmic (equivalent to deviance score up to a constant) 
-log(dpois(x, lambda=mu))

# quadratic (brier)
-2*dpois(x,lambda=mu) + sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) })

# spherical
- dpois(x,mu) / sqrt(sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) }))

# ranked probability score
sum(ppois((-1):(x-1), mu)^2) + sum((ppois(x:10000,mu)-1)^2)

# Dawid Sebastiani
(x-mu)^2/mu + log(mu)
Momo
źródło
@Momo, to stary wątek, ale bardzo dobry i użyteczny. Pytanie jednak o wynik logarytmiczny. Użyłeś funkcji -log(f(y)). Czy -znak naprawdę powinien tam być? W linku do Wikipedii z reguły punktacji ( en.wikipedia.org/wiki/Scoring_rule#Logarithmic_scoring_rule ) wynik logarytmiczny jako brak znaku ujemnego: L(r,i)=ln(ri)czy to normalne? Wreszcie, czy w takim przypadku wyższy wynik jest lepszy czy gorszy?
Bastien
Czy lepiej (lub przynajmniej bardziej zachowawczo i realistycznie) jest obliczać te miary na zbiorze danych do walidacji, który nie był częścią danych wykorzystywanych do szacowania modeli?
Fred
Biorąc pod uwagę, że GLM są dopasowane przy użyciu iteracyjnie ponownie ważonych najmniejszych kwadratów, jak w bwlewis.github.io/GLM , jaki byłby zarzut obliczenia ważonego R2 na skali łącza GLM, przy użyciu wag 1 / wariancji jako wag (które glm zwraca w obciążnikach szczelin w dopasowanym glm)? To działałoby również dla Poissona GLM, prawda?
Tom Wenseleers,
Zobacz stats.stackexchange.com/questions/412580/…, aby uzyskać powtarzalny przykład ...
Tom Wenseleers