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.

r  regression  categorical-data  regression-coefficients  categorical-encoding  machine-learning  random-forest  anova  spss  r  self-study  bootstrap  monte-carlo  r  multiple-regression  partitioning  neural-networks  normalization  machine-learning  svm  kernel-trick  self-study  survival  cox-model  repeated-measures  survey  likert  correlation  variance  sampling  meta-analysis  anova  independence  sample  assumptions  bayesian  covariance  r  regression  time-series  mathematical-statistics  graphical-model  machine-learning  linear-model  kernel-trick  linear-algebra  self-study  moments  function  correlation  spss  probability  confidence-interval  sampling  mean  population  r  generalized-linear-model  prediction  offset  data-visualization  clustering  sas  cart  binning  sas  logistic  causality  regression  self-study  standard-error  r  distributions  r  regression  time-series  multiple-regression  python  chi-squared  independence  sample  clustering  data-mining  rapidminer  probability  stochastic-processes  clustering  binary-data  dimensionality-reduction  svd  correspondence-analysis  data-visualization  excel  c#  hypothesis-testing  econometrics  survey  rating  composite  regression  least-squares  mcmc  markov-process  kullback-leibler  convergence  predictive-models  r  regression  anova  confidence-interval  survival  cox-model  hazard  normal-distribution  autoregressive  mixed-model  r  mixed-model  sas  hypothesis-testing  mediation  interaction 

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.


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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.