9 Logistische Regression
9.1 Lernsteuerung
9.1.1 Vorbereitung
Frischen Sie Ihr Wissen zur logistischen Regression auf bzw. machen Sie sich mit den Grundlagen des Verfahrens vertraut.
9.1.2 Lernziele
Sie verstehen den Zusammenhang von linearen und logistischen Modellen Sie können die logistische Regression mit Methoden von tidymodels anwenden
9.1.3 Literatur
Rhys, Kap. 4
9.1.4 Benötigte R-Pakete
easystats ist, wie Tidymodels und Tidyverse, ein Metapaket, ein R-Paket also, das mehrere Pakete verwaltet und startet. Hier findet sich mehr Info zu Easystats.
Einen flotten Spruch bekommen wir von Easystats gratis dazu:
easystats_zen()
## [1] "Patience you must have my young padawan."
9.2 Intuitive ErklÀrung
Die logistische Reression ist ein Spezialfall des linearen Modells (lineare Regression), der fĂŒr binĂ€re (dichotom) AV eingesetzt wird (es gibt auch eine Variante fĂŒr multinominale AV). Es können eine oder mehrere UV in eine logistische Regression einflieĂen, mit beliebigem Skalenniveau.
Beispiele fĂŒr Forschungsfragen, die mit der logistischen Regression modelliert werden sind:
- Welche Faktoren sind prĂ€diktiv, um vorherzusagen, ob jemand einen Kredit zurĂŒckzahlen kann oder nicht?
- Haben weibliche Passagiere aus der 1. Klasse eine höhere Ăberlebenschance als andere Personen auf der Titanic?
- Welche Faktoren hĂ€ngen damit zusammen, ob ein Kunde eine Webseite verlĂ€sst, bevor er einen Kauf abschlieĂt?
Der Name stammt von der logistischen Funktion, die man in der einfachsten Form so darstellen kann:
\[f(x) = \frac{x}{1+e^{-x}}\]
Da die AV als dichotom modelliert wird, spricht man von einer Klassifikation.
Allerdings ist das Modell reichhaltiger als eine bloĂe Klassifikation, die (im binĂ€ren Fall) nur 1 Bit Information liefert: âjaâ vs. âneinâ bzw. 0 vs. 1.
Das Modell liefert nĂ€mlich nicht nur eine Klassifikation zurĂŒck, sondern auch eine Indikation der StĂ€rke (epistemologisch) der Klassenzugehörigkeit.
Einfach gesagt heiĂt das, dass die logistische Regression eine Wahrscheinlichkeit der Klassenzugehörigkeit zurĂŒckliefert.
9.3 Profil
Das Profil des Modells kann man wie folgt charakterisieren, vgl. Tab. Tabelle 9.1.
Merkmal | Logistische Regression |
---|---|
Klassifikation | ja |
Regression | nein |
Lerntyp | ĂŒberwacht |
parametrisch | ja |
9.4 Warum nicht die lineare Regression verwenden?
Forschungsfrage: Kann man anhand des Spritverbrauchs vorhersagen, ob ein Auto eine Automatik- bzw. ein manuelle Schaltung hat? Anders gesagt: HĂ€ngen Spritverbrauch und Getriebeart, s. Abbildung 9.2? (Datensatz mtcars
)
\(Pr(\text{am}=1|m91,\text{mpgz}=0) = 0.46\): Die Wahrscheinlichkeit einer manuelle Schaltung, gegeben einem durchschnittlichen Verbrauch (und dem Modell m81
) liegt bei knapp 50%.
9.4.1 Lineare Modelle running wild
Wie groĂ ist die Wahrscheinlichkeit fĂŒr eine manuelle Schaltung âŠ
- ⊠bei
mpg_z = -2
?
predict(m81, newdata = data.frame(iv = -2))
## 1
## -0.1923719
\(Pr(\hat{y})<0\) macht keinen Sinn. âĄ
- ⊠bei
mpg_z = +2
?
predict(m81, newdata = data.frame(iv = +2))
## 1
## 1.004872
\(Pr(\hat{y})>1\) macht keinen Sinn. âĄ
Schauen Sie sich mal die Vorhersage an fĂŒr mpg_z=5
đ€Ż
9.4.2 Wir mĂŒssen die Regressionsgerade umbiegen
⊠wenn der vorhergesagte Wert eine Wahrscheinlichkeit, \(p_i\), ist, s. Abbildung 9.3.
Die schwarze Gerade verlĂ€sst den Wertebereich der Wahrscheinlichkeit. Die blaue Kurve, \(\mathcal{f}\), bleibt im erlaubten Bereich, \(Pr(y) \in [0,1]\). Wir mĂŒssen also die linke oder die rechte Seite des linearen Modells transformieren: \(p_i = f(\alpha + \beta \cdot x)\) bzw.:
\(f(p) = \alpha + \beta \cdot x\)
\(\mathcal{f}\) nennt man eine Link-Funktion.
9.4.3 Verallgemeinerte lineare Modelle zur Rettung
FĂŒr metrische AV mit theoretisch unendlichen Grenzen des Wertebereichs haben wir bisher eine Normalverteilung verwendet:
\[y_i \sim \mathcal{N}(\mu_i, \sigma)\]
Dann ist die Normalverteilung eine voraussetzungsarme Wahl (maximiert die Entropie).
Aber wenn die AV binÀr ist bzw. HÀufigkeiten modelliert, braucht man eine Variable die nur positive Werte zulÀsst.
Diese Verallgemeinerung des linearen Modells bezeichnet man als verallgemeinertes lineares Modell (generalized linear model, GLM).
Im Falle einer binÀren (bzw. dichotomen) AV liegt eine bestimmte Form des GLM vor, die man als logistische Regression bezeichnet.
9.5 Der Logit-Link
Der Logit-Link wird auch \(\mathcal{L}\), logit
, Log-Odds oder Logit-Funktion genannt.
Er âbiegtâ die lineare Funktion in die richtige Form.
Der Logit-Link ordnet einen Parameter, der als Wahrscheinlichkeitsmasse definiert ist (und daher im Bereich von 0 bis 1 liegt), einem linearen Modell zu (das jeden beliebigen reellen Wert annehmen kann):
\[ \begin{align} \text{logit}(p_i) &= \alpha + \beta x_i \end{align} \]
- Die Logit-Funktion \(\mathcal{L}\) ist definiert als der (natĂŒrliche) Logarithmus des VerhĂ€ltnisses der Wahrscheinlichkeit zu Gegenwahrscheinlichkeit:
\[\mathcal{L} = \text{log} \frac{p_i}{1-p_i}\]
Das VerhÀltnis der Wahrscheinlichkeit zu Gegenwahrscheinlichkeit nennt man auch Odds.
Also:
\[\mathcal{L} = \text{log} \frac{p_i}{1-p_i} = \alpha + \beta x_i\]
9.6 Aber warum?
Forschungsfrage: HĂ€ngt das Ăberleben (statistisch) auf der Titanic vom Geschlecht ab?
Wie war eigentlich insgesamt, also ohne auf einen (oder mehrere) PrĂ€diktoren zu bedingen, die Ăberlebenswahrscheinlichkeit?
Die Wahrscheinlichkeit zu Ăberleben \(Pr(y=1)\) lag bei einem guten Drittel (0.38).
Das hÀtte man auch so ausrechnen:
Anders gesagt: \(p(y=1) = \frac{549}{549+342} \approx 0.38\)
9.6.1 tidymodels, m83
Berechnen wir jetzt ein lineares Modell fĂŒr die AV Survived
mit dem Geschlecht als PĂ€diktor:
Die Faktorstufen, genannt levels
von Survived
sind:
levels(d$dv)
## [1] "0" "1"
Und zwar genau in dieser Reihenfolge.
9.7 lm83, glm
Die klassische Methoden in R, ein logistisches Modell zu berechnen, ist mit der Funktion glm()
. Tidymodels greift intern auf diese Funktion zurĂŒck. Daher sind die Ergebnisse numerisch identisch.
- AV: Ăberleben (binĂ€r/Faktor)
- UV: Ticketpreis
Mit easystats kann man sich model_parameter()
einfach ausgeben lassen:
Und auch visualisieren lassen:
plot(model_parameters(lm83))
9.8 m83, tidymodels
Achtung! Bei tidymodels muss bei einer Klassifikation die AV vom Type factor
sein. AuĂerdem wird bei tidymodels
, im Gegensatz zu (g)lm
nicht die zweite, sondern die erste als Ereignis modelliert wird.
Daher wechseln wir die referenzkategorie, wir âre-levelnâ, mit relevel()
:
Check:
levels(d2$dv)
## [1] "1" "0"
Passt.
Die erste Stufe ist jetzt 1
, also Ăberleben.
Jetzt berechnen wir das Modell in gewohnter Weise mit tidymodels
.
Hier sind die Koeffizienten, die kann man sich aus m83_fit
herausziehen:
term | estimate | std.error | statistic | p.value |
---|---|---|---|---|
(Intercept) | 2.68 | 0.26 | 10.46 | 0.00 |
iv | â0.75 | 0.08 | â9.13 | 0.00 |
## [1] 2.6827432 -0.7479317
Die Koeffizienten werden in Logits angegeben.
In Abbildung 9.4 ist das Modell und die Daten visualisiert.
Definieren wir als \(y=1\) das zu modellierende Ereignis, hier âĂberleben auf der Titanicâ (hat also ĂŒberlebt).
Wie wir oben schon gesehen haben, funktioniert die lineare Regression nicht einwandfrei bei binÀren (oder dichotomen) AV.
9.8.1 Wahrscheinlichkeit in Odds
Probieren wir Folgendes: Rechnen wir die Wahrscheinlichkeit zu Ăberlegen fĂŒr \(y\), kurz \(p\), in Odds (Chancen) um.
\(odds = \frac{p}{1-p}\)
In R:
odds <- 0.38 / 0.62
odds
## [1] 0.6129032
Bildlich gesprochen sagen die Odds: fĂŒr 38 Menschen, die ĂŒberlebt haben, kommen (ca.) 62 Menschen, die nicht ĂŒberlebt haben, s. Abbildung 9.5.
Plotten wir die Odds als Funktion der UV, s. Abbildung 9.6.
Wir sind noch nicht am Ziel; die Variable ist noch nicht ârichtig gebogenâ.
9.8.2 Von Odds zu Log-Odds
Wenn wir jetzt den Logarithmus (der Odds) berechnen bekommen wir eine âbrav gebogenenâ Funktion, die Log-Odds, \(\mathcal{L}\), als Funktion der UV, s. Abbildung 9.7.
\[\mathcal{L} = log (odds) = log \left(\frac{p}{1-p}\right)\]
Linear!
Es gilt also:
\[\text {log-odds} = b_0 + b_1x\]
Log-Odds (Log-Odds) bezeichnet man auch als Logits.
9.9 Inverser Logit
Um nach \(p\) aufzulösen, mĂŒssen wir einige Algebra bemĂŒhen:
\[ \begin{align} \text{log} \frac{p}{1-p} &= \alpha + \beta x & & \text{Exponentieren}\\ \frac{p}{1-p} &= e^{\alpha + \beta x} \\ p_i &= e^{\alpha + \beta x_i} (1-p) & & \text{Zur Vereinfachung: } x := e^{\alpha + \beta x_i} \\ p_i &= x (1-p) \\ &= x - xp \\ p + px &= x \\ p(1+x) &= x \\ p &= \frac{x} {1+x} & & \text{Lösen wir x wieder auf.} \\ p &= \frac{e^{\alpha + \beta x_i}}{1 + e^{\alpha + \beta x_i}} = \mathcal{L}^{-1} \end{align} \]
Diese Funktion nennt man auch inverser Logit, \(\text{logit}^{-1}, \mathcal{L}^{-1}\).
Zum GlĂŒck macht das alles die Rechenmaschine fĂŒr uns đ.
9.9.1 Vom Logit zur Klasse
Praktisch können wir uns die Logits und ihre zugehörige Wahrscheinlichkeit einfach ausgeben lassen mit R. Und die vorhergesagte Klasse (.pred_class
) auch:
9.9.2 Grenzwert wechseln
Im Standard wird 50% als Grenzwert fĂŒr die vorhergesagte Klasse \(c\) genommen:
- wenn \(p <= .5 \rightarrow c = 0\)
- wenn \(p > .5 \rightarrow c = 1\)
Man kann aber den Grenzwert beliebig wÀhlen, um Kosten-Nutzen-AbwÀgungen zu optimieren; mehr dazu findet sich z.B. hier.
9.10 Logit und Inverser Logit
9.10.1 Logit
\((0,1) \rightarrow (-\infty, +\infty)\)
Abbildung 9.8 zeigt die VerÀnderung des Wertebereichs bei Umrechnung von Wahrscheinlichkeit zu Logit.
Praktisch, um Wahrscheinlichkeit zu modellieren.
\[p \rightarrow \fbox{logit} \rightarrow \alpha + \beta x\]
9.10.2 Inv-Logit
Beim Inversen Logit (Inv-Logit) ist es genau umgekehrt wie beim Logit. Abbildung 9.9 zeigt die VerÀnderung des Wertebereichs des Inv-Logits.
\((-\infty, +\infty) \rightarrow (0,1)\)
Praktisch, um in Wahrscheinlichkeiten umzurechnen.
\[p \leftarrow \fbox{inv-logit} \leftarrow \alpha + \beta x\]
9.11 Logistische Regression im Ăberblick
Eine Regression mit binomial verteilter AV und Logit-Link nennt man logistische Regression.
-
Man verwendet die logistische Regression um binomial verteilte AV zu modellieren, z.B.
- Wie hoch ist die Wahrscheinlichkeit, dass ein Kunde das Produkt kauft?
- Wie hoch ist die Wahrscheinlichkeit, dass ein Mitarbeiter kĂŒndigt?
- Wie hoch ist die Wahrscheinlichkeit, die Klausur zu bestehen?
Die logistische Regression ist eine normale, lineare Regression fĂŒr den Logit von \(Pr(y=1)\), wobei \(y\) (AV) binomialvereteilt mit \(n=1\) angenommen wird:
\[ \begin{align} y_i &\sim \mathcal{B}(1, p_i) \\ \text{logit}(p_i) &= \alpha + \beta x_i \end{align} \]
Da es sich um eine normale, lineare Regression handelt, sind alle bekannten Methoden und Techniken der linearen Regression zulÀssig.
Da Logits nicht einfach zu interpretieren sind, rechnet man nach der Berechnung des Modells den Logit hÀufig in Wahrscheinlichkeiten um.
9.11.1 Die Koeffizienten sind schwer zu interpretieren
Puhhh, s. Abbildung 9.10
- In der logistischen Regression gilt nicht mehr, dass eine konstante VerÀnderung in der UV mit einer konstanten VerÀnderung in der AV einhergeht.
- Stattdessen geht eine konstante VerÀnderung in der UV mit einer konstanten VerÀnderung im Logit der AV einher.
- Beim logistischen Modell hier gilt, dass in der NĂ€he von \(x=0\) die gröĂte VerĂ€nderung in \(p\) von statten geht; je weiter weg von \(x=0\), desto geringer ist die VerĂ€nderung in \(p\).
9.11.2 Logits vs. Wahrscheinlichkeiten
Tabelle 9.2 zeigt Beispiele zur Umrechnung von Logits ĂŒber Odds in Wahrscheinlichkeiten (und retour).
logit | p | odds |
---|---|---|
â10.00 | 0.00 | 0.00 |
â3.00 | 0.05 | 0.05 |
â2.00 | 0.12 | 0.14 |
â1.00 | 0.27 | 0.37 |
â0.50 | 0.38 | 0.61 |
â0.25 | 0.44 | 0.78 |
0.00 | 0.50 | 1.00 |
0.25 | 0.56 | 1.28 |
0.50 | 0.62 | 1.65 |
1.00 | 0.73 | 2.72 |
2.00 | 0.88 | 7.39 |
3.00 | 0.95 | 20.09 |
10.00 | 1.00 | 22,026.47 |