Wann sollten Sie bei der Durchführung einer multiplen Regression Ihre Prädiktorvariablen zentrieren und wann sollten Sie sie standardisieren?

281

In einigen Literaturstellen habe ich gelesen, dass eine Regression mit mehreren erklärenden Variablen, wenn in verschiedenen Einheiten, standardisiert werden musste. (Beim Standardisieren wird der Mittelwert abgezogen und durch die Standardabweichung dividiert.) In welchen anderen Fällen muss ich meine Daten standardisieren? Gibt es Fälle, in denen ich meine Daten nur zentrieren sollte (dh ohne Division durch Standardabweichung)?

mathieu_r
quelle
11
Ein verwandter Beitrag in Andrew Gelmans Blog.
31
Lassen Sie mich zusätzlich zu den bereits gegebenen großartigen Antworten erwähnen, dass bei der Verwendung von Bestrafungsmethoden wie Gratregression oder Lasso das Ergebnis für die Standardisierung nicht mehr unveränderlich ist. Es wird jedoch häufig empfohlen, zu standardisieren. In diesem Fall nicht aus Gründen, die in direktem Zusammenhang mit Interpretationen stehen, sondern weil die Bestrafung dann verschiedene erklärende Variablen gleichberechtigter behandelt.
NRH
6
Willkommen auf der Site @mathieu_r! Sie haben zwei sehr beliebte Fragen gestellt. Bitte stimmen Sie einigen der hervorragenden Antworten zu, die Sie auf beide Fragen erhalten haben;)
Makro
1
Als ich diese Fragen und Antworten las, erinnerte sie mich an eine Usenet-Site, über die ich vor vielen Jahren gestolpert bin wenn man die Daten normalisieren / standardisieren / neu skalieren will. Ich habe es nirgends in den Antworten hier erwähnt gesehen. Es behandelt das Thema eher aus der Perspektive des maschinellen Lernens, aber es könnte jemandem helfen, hierher zu kommen.
Paul

Antworten:

213

In Regression ist es oft empfohlen, zentrieren die Variablen so , dass die Prädiktoren haben bedeuten . Dies macht es so, dass der Intercept-Term als der erwartete Wert von wenn die Prädiktorwerte auf ihre gesetzt werden . Andernfalls wird der als der erwartete Wert von wenn die Prädiktoren auf 0 gesetzt sind. möglicherweise keine realistische oder interpretierbare Situation (z. B. was wäre, wenn die Prädiktoren Größe und Gewicht wären?). Ein weiterer praktischer Grund für die Skalierung in der Regression ist, wenn eine Variable einen sehr großen Maßstab hat, z. B. wenn Sie die Bevölkerungsgröße eines Landes als Prädiktor verwendet haben. In diesem Fall werden die Regressionskoeffizienten können auf einem sehr0Y i Y i 10 - 6YiYikleine Größenordnung (z. B. ), die beim Lesen der Computerausgabe etwas ärgerlich sein kann, sodass Sie die Variable möglicherweise in z. B. die Bevölkerungsgröße in Millionen umrechnen können. Die Konvention, mit der Sie Vorhersagen standardisieren, besteht hauptsächlich darin, dass die Einheiten der Regressionskoeffizienten gleich sind.106

Wie @gung explizit auf und @MånsT anspielt (+1 auf beide, übrigens), hat die Zentrierung / Skalierung keinen Einfluss auf Ihre statistische Inferenz in Regressionsmodellen - die Schätzungen werden entsprechend angepasst und die Werte werden gleich sein.p

Andere Situationen, in denen das Zentrieren und / oder Skalieren nützlich sein kann:

  • wenn Sie versuchen, Variablen auf verschiedenen Skalen zu summieren oder zu mitteln , um vielleicht eine Art zusammengesetzte Punktzahl zu erstellen. Ohne Skalierung kann es vorkommen, dass eine Variable allein aufgrund ihrer Skalierung einen größeren Einfluss auf die Summe hat, was unerwünscht sein kann.

  • Vereinfachung von Berechnungen und Notation. Beispielsweise ist die Stichproben- Kovarianzmatrix einer die durch ihre Stichprobenmittel zentriert ist, einfach . In ähnlicher Weise können, wenn eine univariate Zufallsvariable im Mittel zentriert wurde, und die Varianz aus einer Stichprobe geschätzt werden, indem der Stichprobenmittelwert der Quadrate der beobachteten Stichprobe betrachtet wird Werte.XXXvar(X)=E(X2)

  • In Bezug auf das Vorgenannte kann PCA nur dann als Singulärwertzerlegung einer Datenmatrix interpretiert werden, wenn die Spalten zuerst mit ihren Mitteln zentriert wurden.

Beachten Sie, dass bei den letzten beiden von mir erwähnten Aufzählungspunkten keine Skalierung erforderlich ist und bei den ersten von mir erwähnten Aufzählungspunkten möglicherweise keine Zentrierung erforderlich ist, sodass die beiden Punkte nicht immer Hand in Hand gehen müssen.

Makro
quelle
2
+1, das sind gute Punkte, an die ich nicht gedacht habe. Lassen Sie mich der Klarheit halber einige konkrete Beispiele auflisten, bei denen ein Forscher möglicherweise erklärende Variablen kombinieren möchte, bevor er eine Regression durchführt, und daher standardisieren muss. Ein Fall könnte die Erforschung von Verhaltensstörungen bei Kindern sein. Forscher erhalten möglicherweise Bewertungen sowohl von den Eltern als auch von den Lehrern und möchten sie dann zu einem einzigen Maß an Fehlanpassung kombinieren. Ein anderer Fall könnte eine Studie zum Aktivitätsniveau in einem Pflegeheim mit Selbsteinschätzung der Bewohner und der Anzahl der Unterschriften auf den Anmeldeformularen für Aktivitäten sein.
Gung
2
Aber sollten wir theoretisch nicht das Populationsmittel und die Standardabweichung für die Zentrierung / Skalierung verwenden? Ist es in der Praxis so einfach wie die Verwendung des Stichprobenmittelwerts / SD oder steckt mehr dahinter?
AlefSin
3
Der Vollständigkeit halber ich zu dieser netten Antwort hinzufügen, dass des zentrierten und standardisierten die Korrelationsmatrix ist. XXXX
Glaube
1
@ AlefSin: Vielleicht möchtest du tatsächlich etwas anderes als das Populationsmittel / sd verwenden, siehe meine Antwort. Aber Ihr Standpunkt, dass wir uns überlegen sollten, was wir zum Zentrieren / Skalieren verwenden sollen, ist sehr gut.
Glaube
Yi
143

β1=.6β2=.3ist dann die erste erklärende Variable doppelt so wichtig wie die zweite. Obwohl diese Idee ansprechend ist, ist sie leider nicht gültig. Es gibt mehrere Probleme, aber das vielleicht einfachste ist, dass Sie keine Möglichkeit haben, mögliche Bereichseinschränkungen in den Variablen zu kontrollieren. Es ist eine sehr knifflige philosophische Frage, auf die „Wichtigkeit“ verschiedener Erklärungsvariablen im Verhältnis zueinander zu schließen. Nichts davon deutet darauf hin, dass Standardisierung schlecht oder falsch ist , nur dass sie normalerweise nicht erforderlich ist .

XX2XX


(Update viel später hinzugefügt :) Ein analoger Fall, den ich vergessen habe, ist das Erstellen von Interaktionsbegriffen . Wenn ein Interaktions- / Produktterm aus zwei Variablen erstellt wird, die nicht auf 0 zentriert sind, wird ein gewisser Grad an Kollinearität induziert (wobei der genaue Betrag von verschiedenen Faktoren abhängt). Das Zentrieren adressiert zuerst dieses potentielle Problem. Eine ausführlichere Erklärung finden Sie in dieser hervorragenden Antwort von @Affine: Die Kollinearitätsdiagnose ist nur dann problematisch, wenn der Interaktionsterm enthalten ist .

gung
quelle
12
Wenn jemand daran interessiert ist, spreche ich auch über die falsche Idee, standardisierte Betas zu verwenden, um daraus die relative "Wichtigkeit" abzuleiten: Multiple lineare Regression für Hypothesentests
gung
Danke für deine Antwort. Ich glaube, ich habe es inzwischen herausgefunden: Man könnte sich den quadratischen Term so vorstellen, wie X mit sich selbst interagiert, und Ihr Standpunkt zur interagierten Variablen wäre allgemeiner.
Abhimanyu Arora
6
XX
Bei Beta1 = 0,6 und Beta2 = 0,3 bin ich mir nicht sicher, ob es angemessen ist, Beta1 als doppelt so wichtig wie Beta2 zu bezeichnen, aber ich dachte, da sie standardisiert sind, haben sie dieselbe "Skala", dh Einheiten sind Standardabweichungen aus dem Mittelwert. Allerdings ist die Antwort von Y bei Beta1 (Konstanthalten von x2) doppelt so hoch wie bei Beta2 (Konstanthalten von x1). Richtig? Oder habe ich unterwegs etwas falsch verstanden?
Chao
@chao, Sie haben die Einheiten, die den beiden Variablen eigen sind, noch nicht wirklich losgeworden. Du hast sie gerade versteckt. Jetzt sind die Einheiten von X1 pro 13,9 cm und die Einheiten von X2 pro 2,3 Grad Celsius.
gung
80

Zusätzlich zu den Bemerkungen in den anderen Antworten möchte ich darauf hinweisen, dass der Maßstab und die Position der erklärenden Variablen die Gültigkeit des Regressionsmodells in keiner Weise beeinflussen.

y=β0+β1x1+β2x2++ϵ

β1,β2,x1,x2,β0

x1aβ^11/a

β^1(x1)=i=1n(x1,ix¯1)(yiy¯)i=1n(x1,ix¯1)2.

Somit

β^1(ax1)=i=1n(ax1,iax¯1)(yiy¯)i=1n(ax1,iax¯1)2=ai=1n(x1,ix¯1)(yiy¯)a2i=1n(x1,ix¯1)2=β^1(x1)a.

β^2

Die Skalierung entspricht also einfach der Skalierung der entsprechenden Steigungen.

ai=1/sisix1xi

MånsT
quelle
1
Ist es eine gute Idee, stark verzerrte Variablen zu standardisieren, oder ist es besser, nur symmetrisch verteilte Variablen zu standardisieren? Sollen wir nur die Eingangsvariablen oder auch die Ergebnisse stardadisieren?
17.
31

Wenn Sie den Gradientenabstieg für Ihr Modell verwenden, kann die Konvergenz durch Standardisierung der Kovariaten beschleunigt werden (da die entsprechenden Parameter den Gradienten möglicherweise unangemessen dominieren, wenn Sie die Kovariaten nicht skalieren). Um dies zu veranschaulichen, einige R-Code:

> objective <- function(par){ par[1]^2+par[2]^2}  #quadratic function in two variables with a minimum at (0,0)
> optim(c(10,10), objective, method="BFGS")$counts  #returns the number of times the function and its gradient had to be evaluated until convergence
    function gradient 
          12        3 
> objective2 <- function(par){ par[1]^2+0.1*par[2]^2}  #a transformation of the above function, corresponding to unscaled covariates
> optim(c(10,10), objective2, method="BFGS")$counts
function gradient 
      19       10 
> optim(c(10,1), objective2, method="BFGS")$counts  #scaling of initial parameters doesn't get you back to original performance
function gradient 
      12        8

Bei einigen SVM-Anwendungen kann die Skalierung auch die Prognoseleistung verbessern: Merkmalsskalierung in der Beschreibung der unterstützten Vektordaten .

Mogron
quelle
25

Ich bevorzuge "solide Gründe" sowohl für die Zentrierung als auch für die Standardisierung (sie existieren sehr oft). Im Allgemeinen haben sie mehr mit dem Datensatz und dem Problem zu tun als mit der Datenanalysemethode.

Sehr oft ziehe ich es vor, den Ursprung der Daten auf andere Punkte zu zentrieren (dh zu verschieben), die physikalisch / chemisch / biologisch / ... aussagekräftiger sind als der Mittelwert (siehe auch die Antwort von Macro), z

  • der Mittelwert einer Kontrollgruppe

  • leeres Signal

Die numerische Stabilität ist ein algorithmischer Grund, Daten zu zentrieren und / oder zu skalieren.

Schauen Sie sich auch die ähnliche Frage zur Normung an . Was auch "nur Mitte" abdeckt.

Glaube
quelle
24

Um das von @cbeleites erwähnte Problem der numerischen Stabilität zu veranschaulichen, ist hier ein Beispiel von Simon Wood, wie man "bricht" lm(). Zuerst generieren wir einige einfache Daten und passen eine einfache quadratische Kurve an.

set.seed(1); n <- 100
xx <- sort(runif(n))
y <- .2*(xx-.5)+(xx-.5)^2 + rnorm(n)*.1
x <- xx+100
b <- lm(y ~ x+I(x^2))

plot(x,y)
lines(x, predict(b), col='red')

Bildbeschreibung hier eingeben

Aber wenn wir 900 zu X addieren, sollte das Ergebnis so ziemlich dasselbe sein, außer nach rechts verschoben, nein? Leider nicht...

X <- x + 900
B <- lm(y ~ X+I(X^2))
plot(X,y)
lines(X, predict(B), col='blue')

Bildbeschreibung hier eingeben

Bearbeiten , um den Kommentar von @Scortchi zu ergänzen. Wenn wir das von lm () zurückgegebene Objekt betrachten, sehen wir, dass der quadratische Term nicht geschätzt wurde und als NA angezeigt wird.

> B
Call:
lm(formula = y ~ X + I(X^2))

Coefficients:
(Intercept)            X       I(X^2)  
  -139.3927       0.1394           NA  

Und tatsächlich, wie von @Scortchi vorgeschlagen, "bricht" es, wenn wir uns die Modellmatrix ansehen und versuchen, sie direkt zu lösen.

> X <- model.matrix(b) ## get same model matrix used above
> beta.hat <- solve(t(X)%*%X,t(X)%*%y) ## direct solution of ‘normal equations’
Error in solve.default(t(X) %*% X, t(X) %*% y) : 
  system is computationally singular: reciprocal condition number = 3.9864e-19

Allerdings lm()gibt mir keine Warnung oder Fehlermeldung anders als die NAs auf der I(X^2)Linie des summary(B)in R-3.1.1. Andere Algorithmen können natürlich auf unterschiedliche Weise mit unterschiedlichen Beispielen "gebrochen" werden.

Sean
quelle
10
(+1) Note lmschätzt keinen Koeffizienten für den quadratischen Term und warnt vor einer singulären Entwurfsmatrix - möglicherweise direkter als diese Diagramme.
Scortchi
3

Ich bezweifle ernsthaft, ob die Zentrierung oder Standardisierung der Originaldaten das Multikollinearitätsproblem wirklich lindern könnte, wenn quadrierte Terme oder andere Interaktionsterme in die Regression einbezogen werden, wie einige von Ihnen, insbesondere Gung, oben empfohlen haben.

Betrachten wir zur Veranschaulichung ein einfaches Beispiel.

Angenommen, die wahre Spezifikation hat die folgende Form:

yi=b0+b1xi+b2xi2+ui

Somit ist die entsprechende OLS-Gleichung gegeben durch

yi=yi^+ui^=b0^+b1^xi+b2^xi2+ui^

yi^yiuib0^b2^b0b2zi=xi2

xx2yiyi

yi

y¯=b0^+b1^x¯+b2^z¯
y¯x¯z¯yixizi

y¯yi

yiy¯=b1^(xix¯)+b2^(ziz¯)+ui^

yiy¯xix¯ziz¯b1^b2^

xx2xx2corr(x,z)=corr(xx¯,zz¯)

Zusammenfassend kann ich sagen, dass wenn ich die Zentrierung richtig verstehe, die Zentrierungsdaten meines Erachtens nicht dazu beitragen, das MC-Problem zu mindern, das durch die Einbeziehung quadrierter Terme oder anderer Terme höherer Ordnung in die Regression verursacht wird.

Über Ihre Meinung würde ich mich freuen!

rudi0086021
quelle
2
Danke für deinen Beitrag, @ rudi0086021. Sie mögen Recht haben, aber ich sehe hier ein paar Probleme. Erstens geht es beim Zentrieren darum, den Mittelwert von x zu subtrahieren, nicht darum, den Mittelwert von y zu subtrahieren . Zweitens müssen Sie zuerst zentrieren, das Zentrieren von Nachwörtern hat keine Auswirkung, wie Sie feststellen. Bedenken Sie : x = c(1,2,3); x2 = x^2; cor(x, x2); # [1] 0.9897433; xc = c(-1,0,1); xc2 = xc^2; cor(xc, xc2) # [1] 0.
gung
Vielen Dank für Ihre Antwort, @gung. Hier sind meine Gedanken. Erstens habe ich persönlich keinen überzeugenden Grund gesehen, abhängige und unabhängige Variablen unterschiedlich zu behandeln, dh unabhängige Variablen, während dies für abhängige Variablen nicht der Fall ist.
Rudi0086021
2
Zweitens sollten wir, wie Sie sagten, die Daten zentrieren, bevor Sie quadrierte Terme erstellen. Eine solche Praxis wird das MC-Problem abmildern. Dies könnte jedoch zu verzerrten Schätzungen führen, oder genauer gesagt, zu dem ausgelassenen variablen Bias (OVB). Zur Veranschaulichung siehe folgendes Beispiel: Angenommen, die wahre Spezifikation lautet: y = b0 + b1 * x + b2 * x ^ 2 + u. Das vorherige Zentrieren der Daten ergibt: y = b0 + b1 * (x - xhar) + b2 * (x - xbar) ^ 2 + v, wobei der neue Fehlerterm v = u + b1 * xbar - b2 * xbar ^ 2 + ist 2b2 * xbar * x. Es ist klar, dass cov (x-xbar, v)! = 0 ist. Daher würde eine vorherige Zentrierung der Daten leider zu verzerrten Schätzungen führen.
Rudi0086021
@ rudi0086021 Wie in Ihrem letzten Kommentar angenommen, würden Sie beim Anpassen der zentrierten Daten dieselben Koeffizienten erhalten wie beim Anpassen der nicht zentrierten Daten. Das Zentrieren vor dem Aufnehmen des Quadrats ist jedoch keine einfache Verschiebung um eine Konstante, daher sollte man nicht erwarten, die gleichen Koeffizienten zu erhalten. Die beste Anpassung nach dem Zentrieren ergibt sich aus B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2, wobei B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar und B2 = b2. Somit ist v = u. Es tut mir leid, auf diesen Kommentar so verspätet zu antworten, aber es könnte immer andere wie mich geben, die ihn heute zum ersten Mal sehen.
Tim Goodman