Algunos de mis predictores están en escalas muy diferentes. ¿Necesito transformarlos antes de ajustar un modelo de regresión lineal?

9

Me gustaría ejecutar una regresión lineal sobre un conjunto de datos multidimensionales. Existen diferencias entre las diferentes dimensiones en términos de su magnitud de orden. Por ejemplo, la dimensión 1 generalmente tiene un rango de valores de [0, 1], y la dimensión 2 tiene un rango de valores de [0, 1000].

¿Necesito hacer alguna transformación para asegurar que los rangos de datos para diferentes dimensiones estén en la misma escala? Si es necesario, ¿hay alguna guía para este tipo de transformación?

pregunta de bit
fuente

Respuestas:

14

Las variables de desplazamiento / escala no afectarán su correlación con la respuesta

Para ver por qué esto es cierto, suponga que la correlación entre y es . Entonces la correlación entre y esX ρ Y ( X - a ) / bYXρ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)=ρ

que se desprende de la definición de correlación y tres hechos:

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

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

  • SD(aX)=aSD(X)

Por lo tanto, en términos de ajuste del modelo (por ejemplo, o los valores ajustados), cambiar o escalar sus variables (por ejemplo, ponerlas en la misma escala) no cambiará el modeloR2 , ya que los coeficientes de regresión lineal están relacionados con las correlaciones entre las variables. Solo cambiará la escala de sus coeficientes de regresión , lo que debe tenerse en cuenta al interpretar el resultado si elige transformar sus predictores.

Editar: lo anterior ha asumido que estás hablando de una regresión ordinaria con la intercepción. Un par de puntos más relacionados con esto (gracias @cardinal):

  • La intersección puede cambiar cuando transforma sus variables y, como @cardinal señala en los comentarios, los coeficientes cambiarán cuando cambie sus variables si omite la intersección del modelo, aunque supongo que no lo hará a menos que tenga una buena razón (ver, por ejemplo, esta respuesta ).

  • Si está regularizando sus coeficientes de alguna manera (p. Ej., Lazo, regresión de cresta), entonces el centrado / escala afectará el ajuste. Por ejemplo, si está penalizando (la penalización por regresión de cresta) entonces no puede recuperar un ajuste equivalente después de la estandarización a menos que todas las variables estuvieran en la misma escala en primer lugar, es decir no hay múltiplo constante que recupere la misma penalización.βi2

Con respecto a cuándo / por qué un investigador puede querer transformar predictores

Una circunstancia común (discutida en la respuesta posterior de @Paul) es que los investigadores estandarizarán sus predictores para que todos los coeficientes estén en la misma escala. En ese caso, el tamaño de las estimaciones puntuales puede dar una idea aproximada de qué predictores tienen el mayor efecto una vez que la magnitud numérica del predictor se ha estandarizado.

Otra razón por la que a un investigador le gustaría escalar variables muy grandes es para que los coeficientes de regresión no estén en una escala extremadamente pequeña. Por ejemplo, si desea ver la influencia del tamaño de la población de un país en la tasa de criminalidad (no podría pensar en un mejor ejemplo), es posible que desee medir el tamaño de la población en millones en lugar de en sus unidades originales, ya que el coeficiente puede ser algo como ..00000001

Macro
fuente
Dos comentarios rápidos: si bien el comienzo de la publicación es correcto, se pierde el hecho de que el centrado tendrá un efecto si no hay una intercepción. :) Segundo, centrar y reescalar tiene efectos importantes si se usa la regularización. Si bien el OP puede no estar considerando esto, todavía es probablemente un punto útil a tener en cuenta.
cardenal
La invariancia para reescalar también se ve fácilmente si uno se siente cómodo con la notación matricial. Con rango completo (por simplicidad), . Ahora si reemplazamos por donde es diagonal obtenemosyXX X D D ~ yy^=X(XX)1XyXXDD
y~=(XD)((XD)XD)1(XD)y=XD(DXXD)1DXy=X(XX)1Xy=y^.
cardenal
@cardinal, he decidido mencionar el hecho de que, si sus estimaciones se regularizan, entonces el centrado / escalado puede tener un impacto. Al principio me resistí porque pensé que comenzaría una larga digresión que podría confundir a aquellos que no están familiarizados con la regularización, pero descubrí que podía abordarla con relativamente poco espacio. Thanks--
Macro
No todos mis comentarios están destinados necesariamente a sugerir que la respuesta debe actualizarse. Muchas veces me gusta incluir comentarios complementarios bajo buenas respuestas para dar un par de ideas sobre ideas relacionadas que podrían ser de interés para un transeúnte. (+1)
cardenal
Algo raro está sucediendo con el recuento de votos. Una vez más, voté por esto cuando hice mi comentario anterior y no "tomó". Hmm
cardenal
2

La llamada "normalización" es una rutina común para la mayoría de los métodos de regresión. Hay dos maneras:

  1. Asigne cada variable en los límites [-1, 1] (mapminmax en MatLab.
  2. Elimine la media de cada variable y divida en su devaluación estándar (mapstd en MatLab), es decir, en realidad "normalizar". Si la media real es una desviación desconocida, solo tome características de muestra: o donde , , y
    X~ij=Xijμiσi
    E[Xi
    X~ij=XijXi¯std(Xi)
    E[Xi]=μE[Xi2E[Xi]2]=σ2Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

Como la regresión lineal es muy sensible a los rangos de variables, generalmente sugeriría normalizar todas las variables si no tiene ningún conocimiento previo sobre la dependencia y espera que todas las variables sean relativamente importantes.

Lo mismo ocurre con las variables de respuesta, aunque no es muy importante para ellas.

¿Por qué hacer normalización o estandarización? Principalmente para determinar el impacto relativo de diferentes variables en el modelo. Eso se puede lograr si todas las variables están en las mismas unidades.

¡Espero que esto ayude!

Paul
fuente
¿Qué quiere decir cuando dice que la regresión lineal es muy sensible a los rangos de variables ? Para cualquiera de x1,x2,yestos dos comandos: summary(lm(y~x1+x2))$r.sqy summary(lm(y~scale(x1)+scale(x2)))$r.sq- los valores cuando no estandariza los coeficientes y cuando lo hace - da el mismo valor, lo que indica un ajuste equivalente. R2
Macro
No estaba completamente correcto en la formulación. Me refería al engaño. La regresión sería siempre la misma (en el sentido de ) si realiza solo transformaciones lineales de los datos. Pero si desea determinar qué variables son crusiales y cuáles son casi ruidosas, la escala es importante. Es conveniente convencer a las variables estándar y olvidarse de sus escalas originales. Entonces la regresión es "sensible" en términos de entender los impactos relativos. R2
Paul
Gracias por aclarar, pero qué variables son crusiales y cuáles son casi ruidosas, la escala a menudo se decide por el valor , que tampoco cambiará cuando se estandariza (excepto la intercepción, por supuesto). Estoy de acuerdo con su punto de que proporciona una mejor interpretación de las estimaciones del coeficiente bruto. p
Macro