W poprzednim artykule dotyczącym regresji logistycznej, który możecie znaleźć tutaj, przybliżyłem teoretyczne podstawy działania tego algorytmu. W niniejszym artykule skupię się na trochę dokładniejszym opisie estymacji MNW oraz przedstawię również metody weryfikacji jakości tego modelu. Zapraszam do czytania!
Metoda największej wiarygodności
Aby lepiej przedstawić, w jaki sposób dokonuje się estymacji za pomocą MNW w regresji logistycznej, będziemy musieli przypomnieć sobie przekształcenie logitowe. Dzięki temu przekształceniu, z funkcji logistycznej otrzymaliśmy funkcję liniową. Zobaczmy to przekształcenie na kolorowych wykresach.
Poniżej została zamieszczona funkcja logistyczna. Zielone kropki reprezentują wektory obserwacji, które przynależą do klasy 1, z kolei pomarańczowe kropki reprezentują wektory obserwacji należące do klasy 0. Oś Y reprezentuje prawdopodobieństwo, natomiast oś X reprezentuje daną zmienną np. temperaturę (bo mamy ujemne i dodatnie wartości :D)

Dokonujemy przekształcenia logit i otrzymujemy funkcję liniową, która będzie naszym „kandydatem” odzwierciedlającym proces generujący dane:

Jak pamiętamy z poprzedniego artykułu funkcja ta przyjmuje wartości z zakresu od -∞ do +∞. To przekształcenie niestety wypycha nasze dane do tych wartości. Oś Y już nie reprezentuje prawdopodobieństwa a logarytm szans. Żółte oraz zielone kropki, które reprezentują nasze obserwacje, rzutujemy na naszą funkcję kandydata. W ten sposób, możemy odczytać sobie logarytmy szans dla poszczególnych obserwacji. Dodatkowo przypomnę wzór na naszą funkcję po przekształceniu logit w tym przypadku mamy tylko jedną zmienną niezależną:
Dodatkowo możemy za pomocą równania odwrotnego do logitu, transformować wartości logarytmów szans na prawdopodobieństwo.
Równanie odwrotne:
I wykres funkcji logistycznej:

Teraz dzięki temu zabiegowi możemy wykorzystać przynależność do klasy 1 (zielone), 0 (pomarańczowe), żeby policzyć ich prawdopodobieństwo w sensie likelihood (nie probability).
Aby policzyć likelihood odczytujemy wartości na osi Y na początku dla klasy zielonej 0.85 http://opelz-blog.de/bokstaven-a/index.html , 0.96, 0.98. 0.995, 0.998 a następnie dla klasy pomarańczowej, należy pamiętać że klasę pomarańczową będziemy liczyć jako
(1 – prawdopodobieństwo, że obserwacja przynależy do klasy zielonej)
Ponieważ liczymy prawdopodobieństwo przynależności do klasy pozytywnej w naszym przypadku zielonej. A więc, otrzymujemy następujące wartości prawdopodobieństwa dla klasy pomarańczowej:
(1-0.15), (1-0.07), (1-0.015), (1-0.01).
Normalnie byśmy mnożyli przez siebie otrzymane wartości likelihood, ale w celu ułatwienia obliczeń, zwłaszcza kalkulacji na komputerze, nakłada się logarytm na otrzymane wartości likelihood co pozwala na zastosowanie dodawania zamiast mnożenia. Więc aby otrzymać logarytm wiarygodności zapisujemy:
log(likelihood naszych danych) = log(0.85) + log(0.96) + log(0.98) + log(0.995) + log(0.998) + log(1-0.15) + log(1-0.07) + log(1-0.015) + log(1-0.01) = -0,004364
Oznacza to, że log likelihood naszej funkcji liniowej wynosi -0.004364.
Esencja metody największej wiarygodności w regresji logistycznej.
Wszystkie kroki, które opisałem do tej pory będziemy powtarzać. Na podstawie funkcji liniowej:
będą dobierane wartości parametrów alfa oraz Beta co będzie powodowało rotację i przesunięcia, funkcji liniowej (nowy kandydat) oraz zmianę kształtu funkcji logistycznej:

I odpowiadający wykres funkcji logistycznej:


I odpowiadający wykres funkcji logistycznej:

Kolejne kroki będą powtarzane, czyli liczenie prawdopodobieństwa likelihood, następnie logarytmowanie oraz sumowanie. Wybrane zostaną parametry alfa oraz beta, dla których wartość log likelihood z naszych danych będzie największa.
W ten sposób estymowane są parametry w modelu regresji logistycznej za pomocą metody największej wiarygodności.
Endogeniczność w regresji logistycznej

Uważam, że Data Scientist powinien być elastyczny – potrafił budować i interpretować zarówno modele uczenia maszynowego jak i modele ekonometryczne. Budując modele uczenia maszynowego, często zależy nam na tylko na jakości predykcji i możemy zapominać/pomijać pewne czynniki, na które ekonometrycy zwracają szczególną uwagę. Jednym z takich czynników jest endogeniczność.
Endogeniczność oznacza, że zmienna objaśniająca w modelu jest skorelowana ze składnikiem losowym. Wśród przyczyn endogeniczności wymienia się:
- błędy pomiarowe,
- pominięcie istotnych zmiennych w modelu,
- współprzyczynowość – zmienna objaśniająca i zmienna celu mogą podlegać takim samym wpływom.
Występowanie endogeniczności w modelu regresji logistycznej prowadzi do tego, że estymator MNW nie jest zgodny. Zgodność estymatora oznacza, że im więcej przeprowadzimy prób pomiaru wartości to estymator będzie zbliżał się do rzeczywistej wielkości, a sam błąd oceny parametru przez estymator będzie malał. Jeżeli estymator nie będzie zgodny, ta właściwość nie zachodzi i nasze parametry mogą być błędnie oszacowane. Co dyskwalifikuje model z jakiejkolwiek interpretacji tych parametrów. Istnieją różne metody radzenia sobie z endogenicznością np. metoda zmiennych instrumentalnych, jednakże z powodu, że metody te wymagają szerszego opisu nie będę przytaczał ich w tym artykule. Ważne, abyśmy byli świadomi, że takie zjawisko może występować jeżeli będziemy chcieli wykorzystać regresję logistyczną do modelowania jakiegoś zjawiska.
Oceniamy jakość regresji logistycznej
Pseudo R-kwadrat
Powszechnie używaną miarą do oceny jakości modelu regresji logistycznej jest pseudo R-kwadrat. Są to miary (ponieważ jest ich wiele) konstruowane na podobieństwo miary R-kwadrat z modelu regresji liniowej, jednakże należy pamiętać, że nie mają one takiej interpretacji. Wartości tych miar są z przedziału między 0 a 1. Wyższa wartość oznacza lepsze dopasowanie modelu do danych. Zazwyczaj oparte są na wartości logarytmu funkcji wiarygodności modelu.
Pseudo R-kwadrat McFaddena – jest to jedna z miar pseudo R2, zdefiniowana jest następująco:
W liczniku ułamka znajduje się wartość logarytmu funkcji wiarygodności modelu pełnego, natomiast w mianowniku znajduje się wartość logarytmu funkcji wiarygodności modelu tylko z wyrazem wolnym. Miara ta liczy prostą zależność, im większa różnica jest pomiędzy modelem pełnym a modelem z wyrazem wolnym, tym większą informacje nasze zmienne objaśniające wnoszą do naszego modelu.
Istnieje wiele konstrukcji pseudo R-kwadrat, jeżeli ktoś jest ciekawy to na pewno w dokumentacji pakietów są opisane w jaki sposób jest zdefiniowane R-kwadrat. Jednakże, wszystkie powinny wskazywać na jakość dopasowania modelu do danych.
Tablice trafności i krzywe ROC
Jak przy wszystkich algorytmach klasyfikujących, bardzo dobrymi miarami, które sprawdzą się przy badaniu jakości naszego modelu są macierze pomyłek i miary które są o nie oparte (accuracy, precision, recall …itd.) oraz krzywe ROC. Poniżej zamieszczam odnośniki do świetnych artykułów, w których autorzy w bardzo prosty sposób dokładnie wyjaśniają jak mierzyć jakość modelu za pomocą tych narzędzi:
Test ilorazu wiarygodności (LR – likelihood ratio test)
Test ten, jest bardzo popularny w celu porównywania czy model większy (full model) to znaczy z większą ilością zmiennych jest lepszy od modelu zredukowanego (reduced model). Test ten dla dużych prób jest przybliżany rozkładem chi-kwadrat. Gdzie stopnie swobody (df), to różnica pomiędzy liczbą parametrów w porównywanych modelach.
Test jest zdefiniowany następująco:
gdzie \hat{L_1} to wartość maksimum funkcji wiarygodności modelu 1 i \hat{L_2} analogicznie dla modelu 2.
Hipoteza 0: parametry w modelu większym są równe zero
Przykładowo zapiszmy sobie dwa modele pełny P2 i zredukowany P1:
Nasz model większy różni się od modelu mniejszego parametrem \beta_3 a więc będziemy mieli df=1 (stopnie swobody) oraz hipoteza zero będzie następująca:
H_0:~\beta_3 = 0
Test Walda
Jeżeli chcielibyśmy sprawdzić czy pojedynczy parametr jest równy 0 to z pomocą przychodzi nam test Walda. Jest on opisany następującym wzorem:
Gdzie \hat\beta to wartość oszacowanego parametru a s_{\hat\beta} to błąd standardowy tego parametru.
Dla dużych prób statystyka Z jest przybliżane rozkładem normalnym N(0, 1) lub Z^{2} jest przybliżane rozkładem \chi^{2} z df=1.
Do oceny istotności parametrów stosuje się również estymację przedziałową, ze względu na fakt, że wszystkie pakiety statystyczne wyliczają przedziały automatycznie nie będę rozpisywał wzorów w jaki sposób się je oszacowuje – zainteresowanych odsyłam do Logistic Regression Davida G. Kleibauma. Natomiast, jeżeli chodzi o sprawdzenie istotności parametru to w regresji logistycznej jest pewna reguła kciuka – jeżeli oszacowany przedział zawiera 1 to parametr nie jest istotny statystycznie.
W trzeciej części dotyczącej regresji logistycznej (mam nadzieję ostatniej :D), będziemy estymować regresję za pomocą pythona wyłącznie w celu klasyfikacji. Przetestujemy wtedy działanie macierzy pomyłek oraz krzywą ROC. Dodatkowo przeprowadzimy estymację w R, żebyśmy mogli pobawić się trochę interpretacją parametrów, zarówno ryzyka jak i szans. Do zobaczenia!
Artykuł napisano na podstawie:
- Kleinbaum, David G., et al. Logistic regression. New York: Springer-Verlag, 2002.
- Marek Gruszczyński i in., Mikroekonometria modele i metody analizy danych indywiudalnych, Warszawa, 2010.
- Statquest with Josh Starmer – (youtube) – Logistic Regression
[…] W tym artykule przedstawię sposoby estymacji algorytmu regresji logistycznej do klasyfikacji oraz oceny tej klasyfikacji przy użyciu Pythona i dostępnych dla tego języka biblioteki scikit-learn. Dodatkowo przeprowadzimy estymację w języku R oraz dokonamy interpretacji uzyskanych wyników. Jeżeli nie czytałeś poprzednich artykułów to zapraszam: część 1 oraz część 2. […]