3 Logistische Regression

3.1 Theorie in Kürze

  • Logistische Regression: Binäre Zielgrösse (\(Y\)) wird durch erklärende Variablen (\(X\), diese können kontinuierlich oder diskret, also Faktoren, sein) modelliert
  • Modell: \[\begin{array}{c} Y_i \sim Bin(n, p_i), \\ \log(\frac{p_i}{1-p_i}) = \beta_0 + \sum_{j=1}^{p-1} \beta_j x_{i,j},\\ \end{array}\]

  • Zweistufiges Modell: Stochastischer Teil (\(Y\) folgt Binomialverteilung mit Parametern) und deterministischer Teil (diese Parameter hängen über lineare Funktionen und Link Funktion von erklärenden Variablen ab). Die üblicherweise verwendete “Link-Funktion” sind die log-odds, also \(\log(\frac{p}{1-p})\); andere Link-Funktionen sind möglich, aber sehr selten. Der lineare Prädiktor sieht gleich aus wie in der Linearen Regression (aber Achtung: OHNE “\(+ E_i\)”)
  • Zur Wiederholung: log-odds \(lo = \log(\frac{p}{1-p})\), \(odds = \frac{p}{1-p} = \exp(lo)\); aus den log-odds kann man so z.B. die Wahrscheinlichkeit berechnen: \(p = \frac{\exp(lo)}{1 + \exp(lo)}\)
  • Logistische und Lineare Regression sind Beispiele von Generalized Linear Models (GLMs)
  • Problematik bzgl. unterschiedlicher Parameter bei einfacher und multipler logistischer Regression ist genau gleich wie bei der Linearen Regression
  • Interpretation von Wechselwirkungen ist analog zu Linearer Regression
  • Für die Inuition zu den geschätzten Parametern \(\beta\) ist es am einfachsten, wenn man zunächst so tut, als wäre die Logistische Regression eine Lineare Regression, bei der die log-odds die Zielgrösse sind. Dann ist die Interpretation bzgl. log-odds sehr einfach (z.B. “wenn x um eine Einheit zunimmt, nehmen die log-odds um plus \(\beta\) zu” oder ähnlich), allerdings muss man etwas mehr nachdenken, wenn man das Ergebnis auf der Skala der odds (“odds-Ratio”) oder der Wahrscheinlichkeit wissen will.
  • Tests: Für jeden Parameter \(\beta_j\) gibt es im summary output einen \(Z\)-Test mit \(H_0: \beta_j = 0\)
  • Vorhersage mit der Funktion predict sind möglich für den Parameter (Wahrscheinlichkeit \(p\); Argument type = "response") und für den Wert der Link-Funktion (log-odds; Argument type = "link"), nicht aber für die odds direkt. Für R-Hilfe siehe ?predict.glm
  • Wichtige R Funktionen: glm(..., family = binomial), summary, predict, plot, confint

3.2 Bsp: Einfache logistische Regression

Wir zeigen in diesem Beispiel eine einfache (also nur eine erklärende Variable) logistische Regression und konzentrieren und dabei auf die Interpretation bzgl. Wahrscheinlichkeit, odds oder log-odds. Details bzgl. Faktoren, Wechselwirkung, etc. sind analog zur linearen Regression und wurden dort schon ausführlich illustriert.

Bei einem neuen Antibiotikum wird untersucht, ab welcher Dosis ein Bakterienstamm von vorgegebener Grösse zuverlässig bekämpft werden kann. Dazu testet man mehrere verschiedene Dosis-Einstellungen (Variable x). Bei jeder Dosiseinstellung werden 10 unabhängige Schalen Bakterien mit dieser Dosis behandelt. Nach einer vorgegebenen Zeit wird kontrolliert, ob die Behandlung erfolgreich war (dann ist Variable y gleich 1) oder nicht (dann ist y gleich 0). Zunächst simulieren wir einen Datensatz (diesen Code müssen Sie nicht verstehen; allerdings kann er helfen genauer zu verstehen, welches Modell die logistische Regression genau verwendet):

Nun zur Auswertung mit einer einfachen logistischen Regression. Ab hier sollten Sie die Ausführungen wieder verstehen.

## 
## Call:
## glm(formula = y ~ x, family = binomial, data = d)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.7766  -1.0065   0.6799   0.8933   1.8827  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.9280     0.2310  -4.016 5.91e-05 ***
## x             0.8047     0.1403   5.737 9.65e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 277.18  on 199  degrees of freedom
## Residual deviance: 237.29  on 198  degrees of freedom
## AIC: 241.29
## 
## Number of Fisher Scoring iterations: 4
## Waiting for profiling to be done...
##                  2.5 %    97.5 %
## (Intercept) -1.3990912 -0.490046
## x            0.5396724  1.091546

Im summary-output sehen wir die geschätzten Koeffizienten. Die modellierten log-odds gelten immer für die Gruppe der Zielgrösse, die NICHT Referenzgruppe ist. In unserem Fall also für y=1 (also Erfolg der Behandlung). Bei Dosis 0 sind die log-odds für Erfolg der Behandlung ca. \(-0.93\) (siehe Intercept) mit einem 95%-Vertrauensintervall von \([-1.40; -0.49]\). Aus der Simulation wissen wir, dass der wahre Wert \(\beta_0 = -1\) ist. D.h., unser Schätzwert ist durchaus vernünftig. Wenn man x um eine Einheit erhöht, erhöhen sich die log-odds für Erfolg der Behandlung um etwa plus \(0.80\) (95%-VI ist \([0.54; 1.09]\)). Aus der Simulation wissen wir, dass der wahre Wert \(\beta_1 = 1\) ist. D.h., auch dieser Schätzwert ist durchaus vernünftig. Beide Parameter sind signifikant verschieden von null. Die Auswertung auf der Skala der log-odds ist also sofort aus dem summary-output abzulesen und entspricht genau der Interpretation bei einer linearen Regression.

Etwas schwieriger wird es, wenn wir die Ergebnisse auf der Skala der odds oder der Wahrscheinlichkeit interpretieren wollen. Eine wichige Grösse ist dabei das odds-ratio: Wenn x um eine Einheit erhöht wird, dann erhöhen sich die odds (für Erfolg) um den Faktor \(\exp(\beta_1) = \exp(0.80) \approx 2.23\). Diese Zahl wird das odds-ratio genannt. Ein Vertrauensintervall für das odds-ratio erhalten wir, indem wir die Funktion \(\exp\) auf die Grenzen des Vertrauensintervalls von \(\beta_1\) anwenden: \([\exp(0.54); \exp(1.09)] \approx [1.72; 2.97]\).

Auf der Skala der Wahrscheinlichkeit wird die Interpratation noch schwieriger. Wenn man x um eine Einheit erhöht, ändert sich die Wahrscheinlichkeit um unterschiedliche Werte, je nachdem, bei welchem Wert von x man startet. Meistens wird daher die “Effektstärke” der erklärenden Variable mit dem odds-ratio (inkl. Vertrauensintervall) kommuniziert.

Die Veränderung der Erfolgswahrscheinlichkeit bzgl. der erklärenden Variable lässt sich also nicht einfach quantifizieren. Für einzelne vorgegebene Werte der erklärenden Variable lässt sich allerdings ohne Probleme die durch unser Modell vorhergesagte Wahrscheinlichkeit berechnen. Welche Erfolgswahrscheinlichkeit sagt unser Modell z.B. bei einer Dosis von genau \(x=1\) vorher ?

Zunächst berechnen wir das Ergebnis an Hand der Zahlen im summary output. Wir wissen, dass \(\widehat{\beta}_0 \approx -0.93\) und \(\widehat{\beta}_1 \approx 0.80\). Also sagt unser Modell für eine Dosis von \(x=1\) den Wert \(lo = -0.93 + 1 \cdot 0.8 = -0.13\) vorher. Entsprechend sind die odds \(\exp(-0.13) \approx 0.88\) und die Wahrscheinlichkeit \(\frac{\exp(-0.13)}{1+\exp(-0.13)} \approx 0.47\) gemäss dem geschätzten Modell.

Einfacher geht das mit der Funktion predict. Vorhersagen mit dieser Funktion sind möglich entweder auf der Ebene der Link Funktion (hier log-odds; type = "link") oder auf der Ebene des Parameters (hier Wahrscheinlichkeit; type = "response"). Zudem kann man mit dieser Funktion noch den Standard Error des vorhergesagten Wertes berechnen lassen.

## $fit
##         1 
## 0.4692142 
## 
## $se.fit
##          1 
## 0.03976985 
## 
## $residual.scale
## [1] 1

Die vorhergesagte Wahrscheinlichkeit ist, wie bei der Berechnung von Hand, ca. \(0.47\) (mit einem Standardfehler von ca. \(0.04\)). Daraus können die odds und die log-odds berechnet werden (entweder manuell mit pPred oder direkt mit der Funktion predict; beide Wege führen zu demselben Ergebnis)

Residuenanalyse bei Logistischer Regression ist wesentlich umstrittener als bei der Linearen Regression und wird hier nicht behandelt.