R Language Logistische Regression auf Titanic-Dataset


Beispiel

Die logistische Regression ist ein besonderer Fall des verallgemeinerten linearen Modells , das zur Modellierung dichotomer Ergebnisse verwendet wird ( Probit- und Komplementär-Log-Log- Modelle sind eng miteinander verbunden).

Der Name stammt von der verwendeten Link-Funktion , der Logit- oder Log-Odds- Funktion. Die Umkehrfunktion des Logits wird als logistische Funktion bezeichnet und ist gegeben durch:

Diese Funktion nimmt einen Wert zwischen ] -Inf; + Inf [an und gibt einen Wert zwischen 0 und 1 zurück . dh die logistische Funktion nimmt einen linearen Prädiktor an und gibt eine Wahrscheinlichkeit zurück.

Logistische Regression kann mit der glm Funktion mit der Option family = binomial (Abkürzung für family = binomial(link="logit") ; logit ist die Standard-Linkfunktion für die binomiale Familie).

In diesem Beispiel versuchen wir, das Schicksal der Passagiere an Bord der RMS Titanic vorherzusagen.

Lesen Sie die Daten:

url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)

Reinigen Sie die fehlenden Werte:

In diesem Fall ersetzen wir die fehlenden Werte durch eine Näherung, den Durchschnitt.

titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE) 

Trainieren Sie das Modell:

titanic.train <- glm(survived ~ pclass + sex + age,
                         family = binomial, data = titanic)

Zusammenfassung des Modells:

summary(titanic.train)

Die Ausgabe:

Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.6452  -0.6641  -0.3679   0.6123   2.5615  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  3.552261   0.342188  10.381  < 2e-16 ***
pclass2nd   -1.170777   0.211559  -5.534 3.13e-08 ***
pclass3rd   -2.430672   0.195157 -12.455  < 2e-16 ***
sexmale     -2.463377   0.154587 -15.935  < 2e-16 ***
age         -0.042235   0.007415  -5.696 1.23e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1686.8  on 1312  degrees of freedom
Residual deviance: 1165.7  on 1308  degrees of freedom
AIC: 1175.7

Number of Fisher Scoring iterations: 5
  • Das erste, was angezeigt wird, ist der Anruf. Es erinnert an das Modell und die angegebenen Optionen.

  • Als Nächstes sehen wir die Abweichungs-Residuen, die ein Maß für die Modellanpassung sind. Dieser Teil der Ausgabe zeigt die Verteilung der Abweichungsrestwerte für einzelne Fälle, die im Modell verwendet werden.

  • Der nächste Teil der Ausgabe zeigt die Koeffizienten, ihre Standardfehler, die Z-Statistik (manchmal auch Wald-Z-Statistik genannt) und die zugehörigen p-Werte.

    • Die qualitativen Variablen sind "dummifiziert". Eine Modalität wird als Referenz betrachtet. Die Referenzmodalität kann mit I in der Formel geändert werden.
    • Alle vier Prädiktoren sind mit 0,1% statistisch signifikant.
    • Die logistischen Regressionskoeffizienten geben die Änderung der logarithmischen Quoten des Ergebnisses für eine Erhöhung der Prädiktorvariablen um eine Einheit an.
    • Um die Odds Ratio (multiplikative Änderung der Überlebenswahrscheinlichkeit pro Einheit in einer Prädiktorvariablen) zu sehen, potenzieren Sie den Parameter.
    • Verwenden Sie confint , um das Konfidenzintervall (CI) des Parameters confint .
  • Unterhalb der Koeffiziententabelle befinden sich Fit-Indizes, einschließlich der Null- und Abweichungs-Residuen und des Akaike-Informationskriteriums (AIC), die zum Vergleich der Modellleistung verwendet werden können.

    • Beim Vergleich von Modellen mit maximaler Wahrscheinlichkeit mit den gleichen Daten ist die Anpassung umso besser, je kleiner der AIC ist.
    • Ein Maß für die Modellanpassung ist die Bedeutung des Gesamtmodells. Dieser Test fragt, ob das Modell mit Prädiktoren wesentlich besser passt als ein Modell mit nur einem Intercept (dh einem Nullmodell).

Beispiel für Quotenquoten:

exp(coef(titanic.train)[3])

 pclass3rd 
0.08797765 

Bei diesem Modell haben die Passagiere der 3. Klasse im Vergleich zur ersten Klasse etwa ein Zehntel der Überlebenschancen.

Beispiel eines Konfidenzintervalls für die Parameter:

confint(titanic.train)

Waiting for profiling to be done...
                  2.5 %      97.5 %
(Intercept)  2.89486872  4.23734280
pclass2nd   -1.58986065 -0.75987230
pclass3rd   -2.81987935 -2.05419500
sexmale     -2.77180962 -2.16528316
age         -0.05695894 -0.02786211

Beispiel zur Berechnung der Signifikanz des Gesamtmodells:

Die Teststatistik wird im Chi-Quadrat mit Freiheitsgraden verteilt, die den Unterschieden der Freiheitsgrade zwischen dem aktuellen und dem Nullmodell entsprechen (dh der Anzahl der Prädiktorvariablen im Modell).

with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111

Der p-Wert liegt nahe 0 und zeigt ein stark signifikantes Modell.