Regresja logistyczna cz.2

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ą:

logitP(X) = \alpha + \beta_0X_0

Dodatkowo możemy za pomocą równania odwrotnego do logitu, transformować wartości logarytmów szans na prawdopodobieństwo.

Równanie odwrotne:

p = \frac{e^{log(odds)}}{1+e^{log(odds)}}

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:

logitP(X) = \alpha + \beta_0X_0,

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:

alfa = 0.234

I odpowiadający wykres funkcji logistycznej:

alfa=0.234
alfa = -0.5

I odpowiadający wykres funkcji logistycznej:

alfa = -0.5

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:

McFadden = 1-\frac{lnL_p}{lnL_w}


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:

Macierze pomyłek 1

Macierze pomyłek 2

Krzywa ROC

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:

LR = -2ln\hat{L_1} -(-2ln\hat{L_2})

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:

logitP_2(X) = \alpha + \beta_1X_1 + \beta_2X_2+ \beta_3X_3\\ \space\\ logitP_1(X) = \alpha + \beta_1X_1 + \beta_2X_2

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:

Z = \frac{\hat\beta}{s_{\hat\beta}},

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

1 Komentarz

  • […] 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. […]

Dodaj komentarz