Zurück...

Logistische Regression

Methodisch gehört die logistische Regression zu den strukturprüfenden Verfahren und hat eine verwandschaftliche Beziehung zur Diskriminanzanalyse und natürlich zur Regressionsanalyse.

Kann die Zielgröße Y (abhängige Variable) nur eine binäre (dichotome Verteilung) oder allgemein eine diskrete Ausprägung, z. B.

        yi = 1 (für Erfolg oder wahr oder ...) oder
        yi = 0 (für Misserfolg oder falsch oder ...)

annehmen, kann die unter lineare Regression dargestellte Methode nicht angewendet werden. Dieser Regressionsansatz würde Werte für die unabhängige Variable (Zielgröße) zwischen 0 <= yi <= 1 erlauben. Hier kommt das Verfahren der logistischen Regression zur Anwendung. Über die logistische Regression wird geschätzt, mit welcher Erfolgswahrscheinlichkeit P ein Ereignis Y, das Eintretten von Erfolg oder Misserfolg, von der/den unabhängige(n) Variablen X1 und X2 (oder allgemein von X1, ..., Xn) abhängt.

Der Modellansatz nach

            P = a + bx
            (Parameter a und b werden durch die Regression geschätzt)

beinhaltet die Herausforderung, dass die Wahrscheinlichkeit P, wie bekannt, nur zwischen 0 <= P <= 1 liegen kann. Über die logistische Transformation (F1) werden die Funktionswerte auf diesen Bereich begrenzt:

F1

Grafische Darstellung von F1 für a = 0 und b wie als X-Achse dargestellt.

Ist die Wahrscheinlichkeit P = 0,5, hat das Merkmal X keinen Einfluss auf die Erfolgswahrscheinlichkeit des Ereignisses Y. D. h., ob das Ereignis Y auftritt oder nicht, hängt nicht von X ab! Die folgende Grafik beschreibt diese Aussage:

Über die logistische Transformation kann der obige Modellansatz linearisiert werden (Linkfunktion Logit):

          log(P(x)) = a + bx

Die Schätzung der Parameter a und b erfolgt nach der Maximum-Likelihood-Methode. Um den rechnerischen Aufwand gering zu halten, wird allerdings das Statistikprogramm R zur Schätzung bemüht. Zur Schätzung der Parameter a und b wird die Funktion glm() (GLM: Generalisierte lineare Modelle) mit exponentielle Verteilungsmodelle verwendet.
In dem folgenden Beispiel gehen wir von dem Challenger-Beispiel aus. Sie erinnern sich an die Space-Shuttle-Katastrophe am 28.01.1986? Die Unglücksursache waren defekte Gummidichtungen bei einer der Starterraketen. Den Beispieldatensatz shuttle finden Sie im Paket SMPracticals.

Wir interessieren uns für die Datenobjekte r und temperature des Datensatzes shuttle. r ist die Variable Zustand der Gummidichtungen und temperature die Temperatur zum Zustand der Gummidichtung. Im Folgenden bedeutet 0 o.k. und >=1 defekt als Zustandbeschreibung für die Gummidichtung!

Ausgehend von dieser Voraussetzung, speichern wir den Dichtungszustand (o.k. oder defekt) als numerischen Wahrheitswert in dem Vektor Zustand ab:

> Zustand <- as.numeric(shuttle$r > 0)
> Zustand
 [1] 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1
>

Die Temperatur speichern wir in den Vektor Temp ab:

> Temp <- shuttle$temperature
> Temp
 [1] 66 70 69 68 67 72 73 70 57 63 70 78 67 53 67 75 70 81 76 79 75 76 58
>

Nun schätzen wir über die Funktion glm() die Parameter a und b und legen das geschätzte Modell im R-Objekt Ergebnis ab:

      > Ergebnis <- glm(Zustand ~ Temp, family = binomial("logit"))

Unter family wird das exponentielle Verteilungsmodell Binomial und logit (Linkfunktion) angegeben. über die Funktion coef() lassen wir uns die Parameter a (=  Intercept) und b (= Temp) ausgeben:

      > coef(Ergebnis)
      (Intercept)        Temp
       15.0429016  -0.2321627

Über beide Parameter lässt sich durch Einsetzen in F1 die Eintrittswahrscheinlichkeit schätzen, ob die Gummidichtung bei z. B. -0,6 Grad Celsius (= 31 Grad Fahrenheit) ihre Bestimmung aufgibt, also undicht wird:

Nach diesem Modell liegt die Ausfallwahrscheinlichkeit der Gummidichtung bei 99,96%!

Eine Kenngrößenzusammenfassung erhalten Sie über die R-Funktion summary():

> summary(Ergebnis)

Call:
glm(formula = Zustand ~ Temp, family = binomial("logit"))

Deviance Residuals:
   Min      1Q   Median      3Q     Max 
-1.0611  -0.7613 -0.3783  0.4524   2.2175 

Coefficients:
           Estimate Std. Error z value Pr(>|z|)
(Intercept)  15.0429     7.3786  2.039  0.0415 *
Temp         -0.2322     0.1082  -2.145  0.0320 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

   Null deviance: 28.267  on 22 degrees of freedom
Residual deviance: 20.315  on 21 degrees of freedom
AIC: 24.315

Number of Fisher Scoring iterations: 5

Auffällig sind die Kenngößen zu Deviance Residuals (Deviance: Abweichung, frz. “dévier”) und zu den Koeffizienten (Coefficients), hier der Standardfehler (Std. Error)!

Das geschätzte Modell haben wir im R-Objekt Ergebnis abgelegt. Darauf basierend können wir eine Prognose hinsichtlich der Zielgröße Y, also der Eintrittwahrscheinlichkeit in Bezug einer bestimmten Temperatur, durchführen. Dazu werden wir die R-Funktion predict() verwenden.

Zuerst legen wir einen Datensatz über die Vorhersagetemperatur an:

      > T.min = 20   # Grad Fahrenheit
      > T.max = 100  # Grad Fahrenheit
      > # Temperaturfolge über 500 Punkte von T.min bis T.max bilden:
      > Temp.X <- seq(T.min, T.max, lenght = 500)
      > # Dataframe für das Modell bilden:
      > Temp.Modell <- data.frame(Temp = Temp.X)

Nun wird die Prognose über die Funktion predict() durchgeführt:

    > Temp.Prognose <- predict(Ergebnis, Temp.Modell, type = "response")

Hinweis zum Funktionsaufruf: Da wir glm-R-Objekte nutzen, müssen wir den type = “response” als predict-Attribut mitgeben (siehe predict.glm)!

Lassen wir uns die Prognosetemperatur Temp.Prognose (d. h. die Wahrscheinlichkeiten P) gegen die Vorgabetemperatur Temp.X grafisch darstellen:

    > sunflowerplot(Temp, Zustand, main = "Darstellung der Prognose", xlab = "Temperatur", ylab = "Wahrscheinlichkeit P")
    > lines(Temp.X, Temp.Prognose)
    > abline(h = seq(0,1,0.1), lty = 2)
    > abline(v = seq(55,80,5), lty = 2)

Obige Grafik zeigt, je tiefer die Temperatur desto höher die Eintrittswahrscheinlichkeit, dass der Dichtungsring undicht wird.
Die Punkte auf der Wahrscheinlichkeits-Line P = 0 sind die ”dichten” Dichtungsringe der Originalerhebung. Diejenigen auf der P = 1-Linie sind die defekten Dichtungsringe.

Seitenanfang