Einige meiner Prädiktoren haben sehr unterschiedliche Maßstäbe. Muss ich sie transformieren, bevor ich ein lineares Regressionsmodell anpasse?

9

Ich möchte eine lineare Regression über einen mehrdimensionalen Datensatz ausführen. Es gibt Unterschiede zwischen verschiedenen Dimensionen hinsichtlich ihrer Größenordnung. Beispielsweise hat Dimension 1 im Allgemeinen einen Wertebereich von [0, 1] und Dimension 2 einen Wertebereich von [0, 1000].

Muss ich eine Transformation durchführen, um sicherzustellen, dass die Datenbereiche für verschiedene Dimensionen im gleichen Maßstab liegen? Wenn ja, gibt es eine Anleitung für diese Art der Transformation?

Bit-Frage
quelle

Antworten:

14

Verschiebungs- / Skalierungsvariablen haben keinen Einfluss auf ihre Korrelation mit der Antwort

Um zu sehen , warum dies der Fall ist, an , dass die Korrelation zwischen und ist . Dann wird die Korrelation zwischen und istYXρY(Xa)/b

cov(Y,(Xa)/b)SD((Xa)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1bcov(Y,X)1bSD(X)SD(Y)=ρ

was sich aus der Definition der Korrelation und drei Tatsachen ergibt :

  • cov(Y,X+a)=cov(Y,X)+cov(Y,a)=0=cov(Y,X)

  • cov(Y,aX)=acov(Y,X)

  • SD(aX)=aSD(X)

Daher in Bezug auf die Modellanpassung (zB oder die angepassten Werte), Verschieben oder Ihre Variablen Skalierung (zB sie im gleichen Maßstab setzen) wird das Modell nicht verändertR2 , da lineare Regressionskoeffizienten auf die Korrelationen zwischen Variablen in Beziehung stehen. Die Skala Ihrer Regressionskoeffizienten wird nur geändert. Dies sollte bei der Interpretation der Ausgabe berücksichtigt werden, wenn Sie Ihre Prädiktoren transformieren.

Bearbeiten: Das oben Gesagte hat angenommen, dass Sie über gewöhnliche Regression mit dem Achsenabschnitt sprechen . Noch ein paar Punkte dazu (danke @cardinal):

  • Der Achsenabschnitt kann sich ändern, wenn Sie Ihre Variablen transformieren, und wie @cardinal in den Kommentaren hervorhebt, ändern sich die Koeffizienten, wenn Sie Ihre Variablen verschieben, wenn Sie den Achsenabschnitt aus dem Modell weglassen, obwohl ich davon ausgehe, dass Sie dies nur tun, wenn Sie dies getan haben ein guter Grund (siehe zB diese Antwort ).

  • Wenn Sie Ihre Koeffizienten auf irgendeine Weise regulieren (z. B. Lasso, Gratregression), wirkt sich die Zentrierung / Skalierung auf die Anpassung aus. Wenn Sie beispielsweise (die Ridge-Regressionsstrafe) bestrafen , können Sie nach der Standardisierung keine äquivalente Anpassung wiederherstellen, es sei denn, alle Variablen waren an erster Stelle auf derselben Skala, d. H. Es gibt kein konstantes Vielfaches, das dieselbe Strafe zurückerhält.βi2

In Bezug darauf, wann / warum ein Forscher Prädiktoren transformieren möchte

Ein häufiger Umstand (in der nachfolgenden Antwort von @Paul erörtert) ist, dass Forscher ihre Prädiktoren so standardisieren , dass alle Koeffizienten auf derselben Skala liegen. In diesem Fall kann die Größe der Punktschätzungen eine grobe Vorstellung davon geben, welche Prädiktoren den größten Effekt haben, sobald die numerische Größe des Prädiktors standardisiert wurde.

Ein weiterer Grund, warum ein Forscher sehr große Variablen skalieren möchte, besteht darin, dass die Regressionskoeffizienten nicht extrem klein sind. Wenn Sie beispielsweise den Einfluss der Bevölkerungsgröße eines Landes auf die Kriminalitätsrate untersuchen möchten (Sie könnten sich kein besseres Beispiel vorstellen), möchten Sie möglicherweise die Bevölkerungsgröße in Millionen anstatt in ihren ursprünglichen Einheiten messen , da der Koeffizient kann so etwas wie ..00000001

Makro
quelle
Zwei kurze Bemerkungen: Während der Beginn der Post richtig ist, es fehlt die Tatsache , dass Zentrierung wird einen Einfluss, wenn ein Schnittpunkt vorhanden ist. :) Zweitens hat das Zentrieren und Neuskalieren wichtige Auswirkungen, wenn die Regularisierung verwendet wird. Obwohl das OP dies möglicherweise nicht berücksichtigt, ist es wahrscheinlich immer noch ein nützlicher Punkt, den Sie berücksichtigen sollten.
Kardinal
Die Invarianz zur Neuskalierung ist auch leicht zu erkennen, wenn man mit der Matrixnotation vertraut ist. Mit voller Rang (der Einfachheit halber) ist . Wenn wir nun durch ersetzen, wobei diagonal ist, erhalten wirXy^=X(XX)1XyXXDD
y~=(XD)((XD)XD)1(XD)y=XD(DXXD)1DXy=X(XX)1Xy=y^.
Kardinal
@cardinal, ich habe beschlossen, die Tatsache zu erwähnen, dass Zentrierung / Skalierung Auswirkungen haben kann, wenn Ihre Schätzungen reguliert werden. Zuerst widersetzte ich mich, weil ich dachte, es würde ein langer Exkurs beginnen, der diejenigen verwirren könnte, die mit Regularisierung nicht vertraut sind, aber ich fand, dass ich ihn mit relativ wenig Platz angehen könnte. Danke
Makro
Nicht alle meine Kommentare sollen unbedingt darauf hinweisen, dass die Antwort aktualisiert werden sollte. Oft möchte ich nur unter netten Antworten ergänzende Bemerkungen einfügen, um ein paar Gedanken zu verwandten Ideen zu machen, die für einen Passanten von Interesse sein könnten. (+1)
Kardinal
Mit der Stimmenzählung ist etwas Ungewöhnliches los. Ich habe dies noch einmal positiv bewertet, als ich meinen früheren Kommentar abgegeben habe, und es hat nicht "gedauert". Hmm.
Kardinal
2

Die sogenannte "Normalisierung" ist eine übliche Routine für die meisten Regressionsmethoden. Es gibt zwei Möglichkeiten:

  1. Ordnen Sie jede Variable [-1, 1] Grenzen zu (mapminmax in MatLab.
  2. Entfernen Sie den Mittelwert aus jeder Variablen und teilen Sie die Standardabweichung (mapstd in MatLab), dh "normalisieren". Wenn der tatsächliche Mittelwert einer Abweichung unbekannt ist, nehmen Sie einfach Beispielmerkmale: oder wobei , , und
    X~ij=Xijμiσi
    X~ij=XijXi¯std(Xi)
    E[Xi]=μE[Xi2E[Xi]2]=σ2Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

Da die lineare Regression sehr empfindlich auf die Variablenbereiche reagiert, würde ich generell empfehlen, alle Variablen zu normalisieren , wenn Sie keine Vorkenntnisse über die Abhängigkeit haben und erwarten, dass alle Variablen relativ wichtig sind.

Gleiches gilt für Antwortvariablen, obwohl dies für sie nicht sehr wichtig ist.

Warum Normalisierung oder Standardisierung? Meistens, um die relative Auswirkung verschiedener Variablen im Modell zu bestimmen. Dies kann erreicht werden, wenn sich alle Variablen in denselben Einheiten befinden.

Hoffe das hilft!

Paul
quelle
Was meinen Sie, wenn Sie sagen, dass die lineare Regression sehr empfindlich auf die Variablenbereiche reagiert ? Für alle x1,x2,ydiese beiden Befehle: summary(lm(y~x1+x2))$r.sqund summary(lm(y~scale(x1)+scale(x2)))$r.sq- die Werte, wenn Sie die Koeffizienten nicht standardisieren, und wenn Sie dies tun - geben Sie denselben Wert an, der eine äquivalente Anpassung angibt. R2
Makro
Ich war in der Formulierung nicht ganz richtig. Ich meinte das Narren. Die Regression wäre immer dieselbe (im Sinne von ), wenn Sie nur lineare Transformationen der Daten durchführen. Wenn Sie jedoch feststellen möchten, welche Variablen kritisch und welche fast verrauscht sind, spielt die Skalierung eine Rolle. Es ist nur praktisch, Variablen zu standardisieren und ihre ursprünglichen Skalen zu vergessen. Regression ist also "sensibel" im Hinblick auf das Verständnis der relativen Auswirkungen. R2
Paul
Vielen Dank für die Klarstellung, aber welche Variablen kritisch und welche fast verrauscht sind, hängt oft vom Wert ab, der sich auch beim Standardisieren nicht ändert (außer natürlich dem Achsenabschnitt ). Ich stimme Ihrem Standpunkt zu, dass es eine bessere Interpretation der Rohkoeffizientenschätzungen bietet. p
Makro