Bedeutung des kategorialen Prädiktors in der logistischen Regression

19

Ich habe Probleme bei der Interpretation der z-Werte für kategoriale Variablen in der logistischen Regression. Im folgenden Beispiel habe ich eine kategoriale Variable mit 3 Klassen und gemäß dem z-Wert ist CLASS2 möglicherweise relevant, während die anderen nicht relevant sind.

Aber was heißt das jetzt?

Dass ich die anderen Klassen zu einer zusammenfassen könnte?
Dass die gesamte Variable möglicherweise kein guter Prädiktor ist?

Dies ist nur ein Beispiel und die tatsächlichen z-Werte hier sind nicht von einem echten Problem, ich habe nur Schwierigkeiten bei ihrer Interpretation.

           Estimate    Std. Error  z value Pr(>|z|)    
CLASS0     6.069e-02  1.564e-01   0.388   0.6979    
CLASS1     1.734e-01  2.630e-01   0.659   0.5098    
CLASS2     1.597e+00  6.354e-01   2.514   0.0119 *  
user695652
quelle

Antworten:

47

Die folgende Erklärung ist nicht auf die logistische Regression beschränkt, sondern gilt gleichermaßen für die normale lineare Regression und andere GLMs. In der RRegel wird eine Ebene der kategorialen ausgeschlossen und die Koeffizienten bezeichnen die Differenz jeder Klasse zu dieser Referenzklasse (oder manchmal auch als Basisklasse bezeichnet) (dies wird als Dummy-Codierung oder als Behandlungskontraste bezeichnet R, siehe hier für eine hervorragende Übersicht über die verschiedenen Kontrastoptionen ). Geben Sie ein, um die aktuellen Kontraste Ranzuzeigen options("contrasts"). Normalerweise werden Rdie Ebenen der kategorialen Variablen alphabetisch sortiert und die erste als Referenzklasse verwendet. Dies ist nicht immer optimal und kann durch Eingabe geändert werden (hier würden wir die Referenzklasse in der neuen Variablen auf "c" setzen).new.variable <- relevel(old.variable, ref="c")zpanova(model1, model2, test="LRT")R

mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")

mydata$rank <- factor(mydata$rank)

my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

summary(my.mod)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

rank1rankrank1rankrank1rank2-0,675rank1rank23.990.675=4,67rank1rank1. Sie können das Modell auch ohne Schnittpunkt anpassen - 1, indem Sie der Modellformel Folgendes hinzufügen , um alle Koeffizienten direkt anzuzeigen:

my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")

summary(my.mod2) # no intercept model

Coefficients:
       Estimate Std. Error z value Pr(>|z|)    
gre    0.002264   0.001094   2.070 0.038465 *  
gpa    0.804038   0.331819   2.423 0.015388 *  
rank1 -3.989979   1.139951  -3.500 0.000465 ***
rank2 -4.665422   1.109370  -4.205 2.61e-05 ***
rank3 -5.330183   1.149538  -4.637 3.54e-06 ***
rank4 -5.541443   1.138072  -4.869 1.12e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Beachten Sie, dass der Schnittpunkt jetzt weg ist und der Koeffizient von rank1genau dem Schnittpunkt des ersten Modells entspricht. Hier überprüft der Wald-Test nicht die paarweise Differenz zwischen den Koeffizienten, sondern die Hypothese, dass jeder einzelne Koeffizient Null ist. Wir haben wieder Beweise dafür, dass jeder Koeffizient rankvon Null abweicht. Um zu überprüfen, ob die gesamte Variable rankdie Modellanpassung verbessert, passen wir ein Modell mit ( my.mod1) und eines ohne die Variable rank( my.mod2) an und führen einen Likelihood-Ratio-Test durch. Dies testet die Hypothese, dass alle Koeffizienten von rankNull sind:

my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank

anova(my.mod1, my.mod2, test="LRT")

Analysis of Deviance Table

Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
  Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
1       394     458.52                          
2       397     480.34 -3  -21.826 7.088e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Der Likelihood-Ratio-Test ist hochsignifikant und wir würden daraus schließen, dass die Variable rankim Modell verbleiben sollte.

Dieser Beitrag ist auch sehr interessant.

COOLSerdash
quelle
Sehr informative Antwort! Eine kurze Frage: Was ist, wenn wir nur Rang als Prädiktor haben? Für die Durchführung eines LRT-Tests wäre die Null admit ~ 1vs admit ~ rank - 1?
NULL
1
@NULL Ja, entweder die Null vs. admit~rankoder admit~rank - 1sie sind äquivalent in Bezug auf die Passform.
COOLSerdash
Vielen Dank! Eine andere kurze Frage: wenn ich bei der Durchführung einseitigen Wald - Tests von Koeffizienten der kategorialen Variablen interessiert (ohne Vergleich Baseline - ich meine nicht abfangen), würde die Wirkung anderer Prädiktoren wie greund gpavon diesem Mangel betroffen sein von Aufnahme von Intercept?
NULL
Mit anderen Worten, wenn ich einen einseitigen Test für Koeffizienten des kategorialen Prädiktors durchführen und gleichzeitig nach anderen Kovariaten suchen möchte, ist dies der richtige Weg? und würde dies auch für die lineare Regression gelten?
NULL
1
rankrankp
8

z

Bedeutet ein nicht signifikanter Koeffizient, dass Sie Kategorien zusammenführen können? Nein. Erstens bedeutet nicht signifikant, dass wir die Hypothese, dass es keinen Unterschied gibt, nicht ablehnen können, aber das bedeutet nicht, dass es keine derartigen Unterschiede gibt. Das Fehlen von Beweisen ist nicht dasselbe wie das Fehlen von Beweisen. Zweitens ändert das Zusammenführen von Kategorien, insbesondere der Referenzkategorie, die Interpretation aller anderen Koeffizienten. Ob dies sinnvoll ist oder nicht, hängt davon ab, wofür diese verschiedenen Klassen stehen.

Bedeutet das, dass die gesamte kategoriale Variable ein "schlechter" (nicht signifikanter) Prädiktor ist? Nein, dafür müssten Sie einen simultanen Test für alle CLASS-Begriffe durchführen.

Maarten Buis
quelle