R lineare Regression kategoriale Variable "versteckter" Wert

10

Dies ist nur ein Beispiel, auf das ich mehrmals gestoßen bin, daher habe ich keine Beispieldaten. Ausführen eines linearen Regressionsmodells in R:

a.lm = lm(Y ~ x1 + x2)

x1ist eine stetige Variable. x2ist kategorisch und hat drei Werte, z. B. "Niedrig", "Mittel" und "Hoch". Die von R gegebene Ausgabe wäre jedoch ungefähr so:

summary(a.lm)
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.521     0.20       1.446   0.19        
x1            -0.61     0.11       1.451   0.17
x2Low         -0.78     0.22       -2.34   0.005
x2Medium      -0.56     0.45       -2.34   0.005

Ich verstehe, dass R eine Art Dummy-Codierung für solche Faktoren einführt ( x2ein Faktor). Ich frage mich nur, wie interpretiere ich den x2Wert "Hoch"? Welche Auswirkung haben beispielsweise "Hoch" x2auf die Antwortvariable im hier angegebenen Beispiel?

Ich habe Beispiele dafür an anderer Stelle gesehen (z. B. hier ), aber keine Erklärung gefunden, die ich verstehen könnte.

ttnphns
quelle
3
Möglicherweise erhalten Sie hier eine gute Antwort, aber ich werde dies für die Migration zu stats.SE kennzeichnen, da die Antwort auf diese Frage im Wesentlichen darauf hinausläuft, zu verstehen, wie lineare Regression funktioniert.
Joran
Ja das ist fair genug. Wäre es besser, wenn ich es löschen und selbst verschieben würde? Oder ist das unnötig?
1
Sie sollten nichts tun müssen. Ich habe es markiert, aber es kann ein oder zwei Stunden dauern, bis ein Mod dazu kommt, es ist ein Sonntag und alles.
Joran
3
Ich werde hier keine Antwort geben, da die Frage verschoben wird. Sie können jedoch einige Dinge ausprobieren, um zu verstehen, was vor sich geht: 1. Führen Sie lm (Y ~ x1 + x2 - 1) aus. Das "-1" entfernt den Achsenabschnitt. 2. Verwenden Sie relevel, um die Referenzkategorie von x2 zu ändern.
Manoel Galdino

Antworten:

14

F: "... wie interpretiere ich den x2-Wert" High "? Welche Auswirkung haben beispielsweise" High "x2s auf die Antwortvariable in dem hier angegebenen Beispiel?

A: Sie haben zweifellos bemerkt, dass x2 = "High" in der Ausgabe nicht erwähnt wird. Im Moment wird x2High als "Basisfall" gewählt. Dies liegt daran, dass Sie eine Faktorvariable mit der Standardcodierung für Ebenen angeboten haben, obwohl die Reihenfolge für den menschlichen Verstand natürlicher L / M / H gewesen wäre. Aber "H", das im Alphabet lexikalisch vor "L" und "M" steht, wurde von R als Basisfall gewählt.

Da 'x2' nicht geordnet wurde, war jeder der gemeldeten Kontraste relativ zu x2 = "Hoch" und daher wurde x2 == "Niedrig" auf -0,78 relativ zu x2 = "Hoch" geschätzt. Im Moment ist der Achsenabschnitt der geschätzte Wert von "Y", wenn x2 = "Hoch" und x1 = 0. Sie möchten Ihre Regression wahrscheinlich erneut ausführen, nachdem Sie die Reihenfolge der Ebenen geändert haben (aber den geordneten Faktor nicht festgelegt haben).

x2a = factor(x2, levels=c("Low", "Medium", "High"))

Dann entsprechen Ihre Schätzungen für "Mittel" und "Hoch" eher Ihren Erwartungen.

Bearbeiten: Es gibt alternative Codierungsanordnungen (oder genauere Anordnungen der Modellmatrix). Die Standardauswahl für Kontraste in R ist "Behandlungskontraste", die eine Faktorstufe (oder eine bestimmte Kombination von Faktorstufen) als Referenzstufe und Berichte angeben geschätzte mittlere Unterschiede für andere Ebenen oder Kombinationen. Sie können jedoch festlegen, dass der Referenzpegel der Gesamtmittelwert ist, indem Sie den Intercept auf 0 setzen (nicht empfohlen) oder eine der anderen Kontrastoptionen verwenden:

?contrasts
?C   # which also means you should _not_ use either "c" or "C" as variable names.

Sie können unterschiedliche Kontraste für unterschiedliche Faktoren auswählen, obwohl dies eine zusätzliche Interpretationslast zu bedeuten scheint. S-Plus verwendet standardmäßig Helmert-Kontraste, und SAS verwendet Behandlungskontraste, wählt jedoch die letzte Faktorstufe anstelle der ersten als Referenzstufe.

DWin
quelle
Das macht Sinn. Ich nehme an, dass es offensichtlich x2keinen "keinen Wert" geben konnte, da es einer von "hoch", "mittel" oder "niedrig" sein muss. Danke für deine Antwort.