Zur├╝ck...

Logistische Regression

Methodisch geh├Ârt die logistische Regression zu den strukturpr├╝fenden Verfahren und hat eine verwandtschaftliche Beziehung zur Diskriminanzanalyse und nat├╝rlich zur Regressionsanalyse.
Ein Einf├╝hrungsvideo zur logistischen Regression wird Ihnen ├╝ber das Ad-Oculos-Projekt angeboten.

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 abh├Ąngige Variable (Zielgr├Â├če) yi < 0 und 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 Eintreten 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 Kenngr├Â├č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 von T.min bis T.max bilden:
    > Temp.X <- seq(T.min, T.max, by=0.15)
    > # Dataframe f├╝r das Modell bilden:
    > Temp.Modell <- data.frame(Temp = Temp.X)
    > head(Temp.Modell) # Die ersten Eintr├Ąge des Datensatzes
         Temp
    1 20.00
    2 20.15
    3 20.30
    4 20.45
    5 20.60
    6 20.75
    > tail(Temp.Modell) # Die letzten Eintr├Ąge des Datensatzes
         Temp
    529 99.20
    530 99.35
    531 99.50
    532 99.65
    533 99.80
    534 99.95

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

Hat der Inhalt Ihnen weitergeholfen und Sie m├Âchten diese Seiten unterst├╝tzen?