Do gromadzenia danych, które zgromadziłem, używam regresji Poissona do budowania modeli. Robię to za pomocą glm
funkcji w języku R, gdzie używam family = "poisson"
. Do oceny możliwych modeli (mam kilka predyktorów) używam AIC. Na razie w porządku. Teraz chcę przeprowadzić weryfikację krzyżową. Udało mi się już to zrobić za pomocą cv.glm
funkcji z boot
pakietu. Z dokumentacji o cv.glm
widzę, że np danych dwumiennych trzeba użyć funkcji specyficznych kosztów, aby uzyskać znaczący błąd predykcji. Jednak nie mam jeszcze pojęcia, do jakiej funkcji kosztów jest odpowiednia family = poisson
, a obszerne wyszukiwanie w Google nie przyniosło żadnych konkretnych rezultatów. Moje pytanie brzmi: każdy ma trochę światła do wyjaśnienia, dla której funkcji kosztu jest odpowiednia cv.glm
w przypadku poissona glm.
źródło
cv.glmnet
w pakiecieglmnet
wykorzystujetype.measure="deviance"
dla rodziny Poisson.Odpowiedzi:
Zakładając, że w twoim konkretnym przypadku nie ma nic specjalnego, uważam, że istnieje dobry argument za użyciem wartości domyślnej (średni błąd kwadratu) lub średniego błędu dzienników, a nawet błędu chi-kwadrat.
Celem funkcji kosztu jest wyrażenie, jak bardzo jesteś „zdenerwowany” niewłaściwymi przewidywaniami, a konkretnie tym, co najbardziej ci przeszkadza. Jest to szczególnie ważne w przypadku odpowiedzi binarnych, ale może mieć znaczenie w każdej sytuacji.
Średni błąd kwadratowy (odpowiedzi)
Korzystając z MSE, jesteś w równym stopniu wrażliwy na błędy z góry i z dołu oraz w równym stopniu wrażliwy na duże i małe prognozy. Jest to dość standardowa rzecz do zrobienia, więc nie sądzę, aby w większości przypadków byłby to niezadowolony.
Średni błąd kwadratowy (odpowiedzi dziennika)
Ponieważ pracujesz z danymi zliczania, można argumentować, że nie jesteś symetryczny ani obojętny na wielkość. Wykluczenie o 10 liczy się dla prognozy 10, bardzo różni się od prognozy 1000. Jest to nieco „kanoniczna” funkcja kosztu, ponieważ dopasowałeś koszty do funkcji link. Zapewnia to, że koszty odpowiadają rozkładowi wariancji zakładanemu w modelu.
Błąd chi-kwadrat
Trzecim sposobem byłoby użycie błędu chi-kwadrat. Może to być szczególnie atrakcyjne, jeśli porównujesz swój GLM z innymi modelami opartymi na zliczaniu - szczególnie jeśli istnieją czynniki w GLM. Podobnie do odpowiedzi w dzienniku błędów, będzie się skalować wraz z rozmiarem, ale jest symetryczny wokół przewidywanej liczby. Oceniasz teraz poprawność dopasowania na podstawie błędu procentowego.
O dyskrecji
Pytanie przytacza przykład dokumentacji, w której mają binarną zmienną odpowiedzi, więc użyj innej funkcji kosztu. Problem z odpowiedzią binarną polega na tym, że GLM prognozuje liczbę rzeczywistą od 0 do 1, nawet jeśli odpowiedź zawsze wynosi dokładnie 0 lub 1. Można powiedzieć, że im bliżej tej liczby do poprawnej odpowiedzi, tym lepiej prognozy, ale często ludzie tego nie chcą. Powodem jest to, że często trzeba postępować tak, jakby to było 0 lub 1, a więc weźmie mniej niż 0,5 jako prognozę na 0. W takim przypadku sensowne jest po prostu policzyć liczbę „złych” prognoz. Argument jest taki, że w przypadku pytania typu prawda / fałsz można zawsze mieć rację lub zło - nie ma stopniowania zła.
źródło