R - Logistische Regression

Die logistische Regression ist ein Regressionsmodell, bei dem die Antwortvariable (abhängige Variable) kategoriale Werte wie Wahr / Falsch oder 0/1 aufweist. Es misst tatsächlich die Wahrscheinlichkeit einer binären Antwort als Wert der Antwortvariablen basierend auf der mathematischen Gleichung, die sie mit den Prädiktorvariablen in Beziehung setzt.

Die allgemeine mathematische Gleichung für die logistische Regression lautet -

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

Es folgt die Beschreibung der verwendeten Parameter -

  • y ist die Antwortvariable.

  • x ist die Prädiktorvariable.

  • a und b sind die Koeffizienten, die numerische Konstanten sind.

Die zum Erstellen des Regressionsmodells verwendete Funktion ist die glm() Funktion.

Syntax

Die grundlegende Syntax für glm() Funktion in der logistischen Regression ist -

glm(formula,data,family)

Es folgt die Beschreibung der verwendeten Parameter -

  • formula ist das Symbol für die Beziehung zwischen den Variablen.

  • data ist der Datensatz, der die Werte dieser Variablen angibt.

  • familyist ein R-Objekt, um die Details des Modells anzugeben. Der Wert ist binomial für die logistische Regression.

Beispiel

Der eingebaute Datensatz "mtcars" beschreibt verschiedene Modelle eines Autos mit ihren verschiedenen Motorspezifikationen. Im Datensatz "mtcars" wird der Übertragungsmodus (automatisch oder manuell) durch die Spalte am beschrieben, die ein Binärwert (0 oder 1) ist. Wir können ein logistisches Regressionsmodell zwischen den Spalten "am" und 3 anderen Spalten erstellen - hp, wt und cyl.

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

Wenn wir den obigen Code ausführen, wird das folgende Ergebnis erzeugt:

am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

Regressionsmodell erstellen

Wir nehmen das glm() Funktion zum Erstellen des Regressionsmodells und Abrufen der Zusammenfassung zur Analyse.

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

Wenn wir den obigen Code ausführen, wird das folgende Ergebnis erzeugt:

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

Fazit

Da der p-Wert in der letzten Spalte für die Variablen "cyl" und "hp" mehr als 0,05 beträgt, halten wir sie in der Zusammenfassung für unbedeutend, um zum Wert der Variablen "am" beizutragen. Nur das Gewicht (wt) beeinflusst den "am" -Wert in diesem Regressionsmodell.