Al realizar una regresión múltiple, ¿cuándo debería centrar sus variables predictoras y cuándo debería estandarizarlas?

281

En cierta literatura, he leído que una regresión con múltiples variables explicativas, si está en unidades diferentes, necesitaba ser estandarizada. (La estandarización consiste en restar la media y dividirla por la desviación estándar). ¿En qué otros casos necesito estandarizar mis datos? ¿Hay casos en los que solo debería centrar mis datos (es decir, sin dividirlos por la desviación estándar)?

mathieu_r
fuente
11
Una publicación relacionada en el blog de Andrew Gelman.
31
Además de las excelentes respuestas ya dadas, permítanme mencionar que cuando se utilizan métodos de penalización como la regresión de cresta o el lazo, el resultado ya no es invariable para la estandarización. Sin embargo, a menudo se recomienda estandarizar. En este caso, no por razones directamente relacionadas con las interpretaciones, sino porque la penalización tratará las diferentes variables explicativas en pie de igualdad.
NRH
66
¡Bienvenido al sitio @mathieu_r! Has publicado dos preguntas muy populares. Considere votar a favor / aceptar algunas de las excelentes respuestas que recibió a ambas preguntas;)
Macro
1
Cuando leí estas preguntas y respuestas, me recordó a un sitio de Usenet con el que me topé hace muchos años faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html Esto proporciona en términos simples algunos de los problemas y consideraciones cuando se quiere normalizar / estandarizar / reescalar los datos. No lo vi mencionado en ninguna parte de las respuestas aquí. Trata el tema desde una perspectiva más de aprendizaje automático, pero podría ayudar a alguien que viene aquí.
Paul

Respuestas:

213

En la regresión, a menudo se recomienda centrar las variables para que los predictores tengan una media de . Esto hace que el término de intercepción se interprete como el valor esperado de cuando los valores del predictor se establecen en sus medias . De lo contrario, la intersección se interpreta como el valor esperado de cuando los predictores se establecen en 0, lo que puede no ser una situación realista o interpretable (por ejemplo, ¿qué si los predictores fueran altura y peso?). Otra razón práctica para escalar la regresión es cuando una variable tiene una escala muy grande, por ejemplo, si estaba usando el tamaño de la población de un país como predictor. En ese caso, los coeficientes de regresión pueden estar en un muy0S i S i 10 - 6YiYipequeño orden de magnitud (p. ej., ) que puede ser un poco molesto cuando lee la salida de la computadora, por lo que puede convertir la variable a, por ejemplo, el tamaño de la población en millones. La convención de estandarizar las predicciones existe principalmente para que las unidades de los coeficientes de regresión sean las mismas.106

Como @gung alude y @ MånsT se muestran explícitamente (+1 a ambos, por cierto), el centrado / escalado no afecta su inferencia estadística en los modelos de regresión: las estimaciones se ajustan adecuadamente y los valores serán los mismos.p

Otras situaciones en las que puede ser útil centrar y / o escalar:

  • cuando intentas sumar o promediar variables que están en diferentes escalas , quizás para crear una puntuación compuesta de algún tipo. Sin escala, puede darse el caso de que una variable tenga un mayor impacto en la suma debido únicamente a su escala, lo que puede ser indeseable.

  • Para simplificar los cálculos y la notación. Por ejemplo, la matriz de covarianza muestral de una matriz de valores centrada por sus medias muestrales es simplemente . De manera similar, si una variable aleatoria univariada se ha centrado en la media, entonces y la varianza se puede estimar a partir de una muestra observando la media de la muestra de los cuadrados de lo observado valores.XXXvar(X)=E(X2)

  • En relación con lo mencionado anteriormente, PCA solo puede interpretarse como la descomposición del valor singular de una matriz de datos cuando las columnas se han centrado por primera vez por sus medios.

Tenga en cuenta que la escala no es necesaria en los dos últimos puntos que mencioné y que el centrado puede no ser necesario en el primer punto que mencioné, por lo que no es necesario que los dos vayan de la mano en todo momento.

Macro
fuente
2
+1, estos son buenos puntos en los que no pensé. Para mayor claridad, permítanme enumerar algunos ejemplos concretos en los que un investigador podría querer combinar variables explicativas antes de ejecutar una regresión y, por lo tanto, necesitar estandarizar. Un caso podría ser para la investigación de los trastornos de conducta de los niños; los investigadores podrían obtener calificaciones de padres y maestros, y luego desear combinarlos en una sola medida de desajuste. Otro caso podría ser un estudio sobre el nivel de actividad en un hogar de ancianos con autoevaluación por parte de los residentes y el número de firmas en las hojas de inscripción para las actividades.
Gung
2
Pero, ¿no deberíamos en teoría utilizar la media de la población y la desviación estándar para centrar / escalar? En la práctica, ¿es tan simple como usar la media / DE muestra o hay más?
AlefSin
3
En aras de la exhaustividad, permítanme agregar a esta agradable respuesta que de la centrada y estandarizada es la matriz de correlación. XXXX
cbeleites 05 de
1
@AlefSin: es posible que desee utilizar algo más que la media / sd de la población, vea mi respuesta. Pero su punto de que deberíamos pensar qué usar para centrar / escalar es muy bueno.
cbeleites
@AlefSin, todos mis comentarios se hicieron asumiendo que estaba usando la muestra media / DE. Si se centra por la muestra significa que la interpretación de la intersección sigue siendo la misma, excepto que es el valor esperado de cuando los predictores establecen sus medias de muestra . La información en mis tres viñetas todavía se aplica cuando se centra / escala por cantidades de muestra. También vale la pena señalar que si se centra por la media de la muestra, el resultado es una variable con media 0 pero la escala por la desviación estándar de la muestra no produce, en general, un resultado con la desviación estándar 1 (por ejemplo, el estadístico t). Yi
Macro
143

Te has encontrado con una creencia común. Sin embargo, en general, no necesita centrar o estandarizar sus datos para la regresión múltiple. Las diferentes variables explicativas están casi siempre en diferentes escalas (es decir, medidas en diferentes unidades). Esto no es un problema; las betas se estiman de tal manera que convierten las unidades de cada variable explicativa en las unidades de la variable de respuesta de manera apropiada. Una cosa que la gente a veces dice es que si primero ha estandarizado sus variables, puede interpretar las versiones beta como medidas de importancia. Por ejemplo, si yβ 2 = .3β1=.6β2=.3, entonces la primera variable explicativa es dos veces más importante que la segunda. Si bien esta idea es atractiva, desafortunadamente, no es válida. Hay varios problemas, pero quizás el más fácil de seguir es que no tiene forma de controlar las posibles restricciones de rango en las variables. Inferir la "importancia" de diferentes variables explicativas entre sí es un tema filosófico muy complicado. Nada de eso sugiere que la estandarización sea mala o incorrecta , solo que generalmente no es necesaria .

El único caso en el que puedo pensar fuera de mi cabeza donde centrar es útil es antes de crear términos de poder. Digamos que tiene una variable, , que varía de 1 a 2, pero sospecha que existe una relación curvilínea con la variable de respuesta, por lo que desea crear un término . Si no centra primero, su término al cuadrado estará altamente correlacionado con , lo que podría enturbiar la estimación de la beta. El centrado primero aborda este problema. X 2 X XXX2XX


(La actualización se agregó mucho más tarde :) Un caso análogo que olvidé mencionar es la creación de términos de interacción . Si se crea un término de interacción / producto a partir de dos variables que no están centradas en 0, se inducirá cierta cantidad de colinealidad (con la cantidad exacta dependiendo de varios factores). El centrado primero aborda este problema potencial. Para una explicación más completa, vea esta excelente respuesta de @Affine: el diagnóstico de colinealidad es problemático solo cuando se incluye el término de interacción .

gung
fuente
12
Si alguien está interesado, también hablo sobre la idea equivocada de usar betas estandarizadas para inferir aquí la 'importancia' relativa: regresión lineal múltiple para pruebas de hipótesis
gung
Gracias por su respuesta. Mientras tanto, creo que lo descubrí: uno podría pensar en el término cuadrado como X interactuaba consigo mismo, por así decirlo, y su punto sobre la variable interactuada sería más general.
Abhimanyu Arora
66
XX
Acerca de beta1 = 0.6 y beta2 = 0.3, no estoy seguro de si decir beta1 es tan importante como beta2 es apropiado, pero pensé que dado que están estandarizados están en la misma 'escala', es decir, las unidades son desviaciones estándar de la media. Dicho esto, la respuesta de Y será dos veces mayor en el caso de beta1 (manteniendo constante x2) que para beta2 (manteniendo constante x1). ¿Derecho? ¿O he entendido mal algo en el camino?
chao
@chao, realmente no te has librado de las unidades que son intrínsecas a las 2 variables; los acabas de ocultar. Ahora, las unidades de X1 son por 13.9 cm, y las unidades de X2 son por 2.3 grados Celsius.
Gung
80

Además de los comentarios en las otras respuestas, me gustaría señalar que la escala y la ubicación de las variables explicativas no afectan la validez del modelo de regresión de ninguna manera.

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.

Así

β^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

Por lo tanto, la escala simplemente corresponde a escalar las pendientes correspondientes.

ai=1/sisix1xi

MånsT
fuente
1
¿Es una buena idea estandarizar variables que están muy sesgadas o es mejor estandarizar variables distribuidas simétricamente? ¿Deberíamos destacar solo las variables de entrada o también los resultados?
skan
31

En caso de que use el descenso de gradiente para adaptarse a su modelo, la estandarización de las covariables puede acelerar la convergencia (porque cuando tiene covariables sin escala, los parámetros correspondientes pueden dominar de manera inapropiada el gradiente). Para ilustrar esto, algunos códigos R:

> 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

Además, para algunas aplicaciones de SVM, el escalado puede mejorar el rendimiento predictivo: escalado de características en la descripción de datos vectoriales de soporte .

mogron
fuente
25

Prefiero "razones sólidas" para centrar y estandarizar (existen muy a menudo). En general, tienen más que ver con el conjunto de datos y el problema que con el método de análisis de datos.

Muy a menudo, prefiero centrar (es decir, cambiar el origen de los datos) a otros puntos que son física / químicamente / biológicamente / ... más significativos que la media (ver también la respuesta de Macro), p. Ej.

  • la media de un grupo de control

  • señal en blanco

La estabilidad numérica es una razón relacionada con el algoritmo para centrar y / o escalar datos.

Además, eche un vistazo a la pregunta similar sobre la estandarización . Que también cubre "centro solamente".

Cbeleites
fuente
24

Para ilustrar el problema de estabilidad numérica mencionado por @cbeleites, aquí hay un ejemplo de Simon Wood sobre cómo "romper" lm(). Primero generaremos algunos datos simples y ajustaremos una curva cuadrática simple.

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')

ingrese la descripción de la imagen aquí

Pero si agregamos 900 a X, entonces el resultado debería ser más o menos el mismo, excepto desplazado a la derecha, ¿no? Lamentablemente no...

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

ingrese la descripción de la imagen aquí

Edite para agregar al comentario de @Scortchi: si miramos el objeto devuelto por lm (), vemos que el término cuadrático no se ha estimado y se muestra como NA.

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

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

Y de hecho, como lo sugiere @Scortchi, si miramos la matriz del modelo y tratamos de resolverla directamente, "se rompe".

> 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

Sin embargo, lm()no me da ningún mensaje de advertencia o error que no sea el NAs en la I(X^2)línea de summary(B)R-3.1.1. Por supuesto, otros algoritmos pueden "romperse" de diferentes maneras con diferentes ejemplos.

Sean
fuente
10
(+1) Note lmno puede estimar un coeficiente para el término cuadrático, y da una advertencia sobre una matriz de diseño singular, tal vez más directamente ilustrativa del problema que estas gráficas.
Scortchi
3

Dudo seriamente si centrar o estandarizar los datos originales realmente podría mitigar el problema de multicolinealidad cuando los términos al cuadrado u otros términos de interacción se incluyen en la regresión, como algunos de ustedes, Gung en particular, han recomendado anteriormente.

Para ilustrar mi punto, consideremos un ejemplo simple.

Supongamos que la especificación verdadera toma la siguiente forma de manera que

yi=b0+b1xi+b2xi2+ui

Así, la ecuación OLS correspondiente está dada por

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¯)

En resumen, si mi comprensión sobre el centrado es correcta, entonces no creo que los datos de centrado ayuden a mitigar el problema de MC causado por la inclusión de términos cuadrados u otros términos de orden superior en la regresión.

Estaré encantado de escuchar tus opiniones!

rudi0086021
fuente
2
Gracias por su contribución, @ rudi0086021. Puede que tengas razón, pero veo un par de problemas aquí. Primero, centrar se trata de restar la media de x , no de restar la media de y ; En segundo lugar, debe centrarse primero, centrar las palabras clave posteriores no tiene ningún efecto como lo observa. Considere lo siguiente: 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
Gracias por tu respuesta, @gung. Aquí están mis pensamientos. En primer lugar, personalmente no vi ninguna razón convincente para tratar las variables dependientes e independientes de manera diferente, es decir, a las variables independientes, mientras que no hacerlo para las variables dependientes.
rudi0086021
2
En segundo lugar, como dijiste, quizás deberíamos centrar los datos antes de crear términos cuadrados. Tal práctica mitigará el problema de MC. Sin embargo, podría conducir a estimaciones sesgadas, o más concretamente, al sesgo variable omitido (OVB). Para ilustrar, vea el siguiente ejemplo: suponga que la verdadera especificación es: y = b0 + b1 * x + b2 * x ^ 2 + u. Centrar los datos de antemano dará: y = b0 + b1 * (x-xhar) + b2 * (x-xbar) ^ 2 + v, donde el nuevo término de error v = u + b1 * xbar-b2 * xbar ^ 2 + 2b2 * xbar * x. Está claro que cov (x-xbar, v)! = 0. Por lo tanto, desafortunadamente, centrar los datos de antemano conduciría a estimaciones sesgadas.
rudi0086021
@ rudi0086021 Parece que en su último comentario asume que obtendría los mismos coeficientes al ajustar los datos centrados que al ajustar los datos no centrados. Pero centrar antes de tomar el cuadrado no es un simple cambio por una constante, por lo que no se debe esperar obtener los mismos coeficientes. El mejor ajuste después del centrado viene dado por B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2 donde B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar y B2 = b2. Por lo tanto, v = u. Lamento responder a este comentario tan tardíamente, pero siempre podría haber otros como yo que lo vean por primera vez hoy.
Tim Goodman