¿Estandarizar variables independientes reduce la colinealidad?

12

Me he encontrado con un muy buen texto sobre Bayes / MCMC. TI sugiere que una estandarización de sus variables independientes hará que un algoritmo MCMC (Metrópolis) sea más eficiente, pero también puede reducir la (multi) colinealidad. ¿Puede ser eso cierto? ¿Es esto algo que debería hacer como estándar ? (Lo siento).

Kruschke 2011, Doing Bayesian Data Analysis. (AP)

editar: por ejemplo

     > data(longley)
     > cor.test(longley$Unemployed, longley$Armed.Forces)

Pearson's product-moment correlation

     data:  longley$Unemployed and longley$Armed.Forces 
     t = -0.6745, df = 14, p-value = 0.5109
     alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
     -0.6187113  0.3489766 
     sample estimates:
      cor 
     -0.1774206 

     > standardise <- function(x) {(x-mean(x))/sd(x)}
     > cor.test(standardise(longley$Unemployed), standardise(longley$Armed.Forces))

Pearson's product-moment correlation

     data:  standardise(longley$Unemployed) and standardise(longley$Armed.Forces) 
     t = -0.6745, df = 14, p-value = 0.5109
      alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
      -0.6187113  0.3489766 
      sample estimates:
       cor 
     -0.1774206 

Esto no ha reducido la correlación o, por lo tanto, la dependencia lineal aunque limitada de los vectores.

¿Que esta pasando?

R

rosser
fuente

Respuestas:

19

No cambia la colinealidad entre los efectos principales en absoluto. Escalar tampoco. Cualquier transformación lineal no hará eso. Lo que cambia es la correlación entre los efectos principales y sus interacciones. Incluso si A y B son independientes con una correlación de 0, la correlación entre A y A: B dependerá de factores de escala.

Pruebe lo siguiente en una consola R. Tenga en cuenta que rnormsolo genera muestras aleatorias a partir de una distribución normal con los valores de población establecidos, en este caso 50 muestras. La scalefunción estandariza la muestra a una media de 0 y SD de 1.

set.seed(1) # the samples will be controlled by setting the seed - you can try others
a <- rnorm(50, mean = 0, sd = 1)
b <- rnorm(50, mean = 0, sd = 1)
mean(a); mean(b)
# [1] 0.1004483 # not the population mean, just a sample
# [1] 0.1173265
cor(a ,b)
# [1] -0.03908718

La correlación incidental es cercana a 0 para estas muestras independientes. Ahora normalice a media de 0 y SD de 1.

a <- scale( a )
b <- scale( b )
cor(a, b)
# [1,] -0.03908718

Nuevamente, este es el mismo valor exacto aunque la media sea 0 y SD = 1 para ambos ay b.

cor(a, a*b)
# [1,] -0.01038144

Esto también está muy cerca de 0. (a * b puede considerarse el término de interacción)

Sin embargo, generalmente la SD y la media de los predictores difieren bastante, así que cambiemos b. En lugar de tomar una nueva muestra, volveré a escalar el original bpara tener una media de 5 y una DE de 2.

b <- b * 2 + 5
cor(a, b)
 # [1] -0.03908718

Una vez más, esa correlación familiar que hemos visto todo el tiempo. La escala no está teniendo ningún impacto en la correlación entre ay b. ¡¡Pero!!

cor(a, a*b)
# [1,] 0.9290406

Ahora eso tendrá una correlación sustancial que puede hacer desaparecer al centrar y / o estandarizar. Generalmente voy solo con el centrado.

John
fuente
1
+1 para una respuesta completa y comprensible (¡con código!)
Peter Flom - Restablece a Monica
1
También es útil si desea incluir, por ejemplo, un término cuadrático.
Aniko
absolutamente Aniko
John
1
La mejor respuesta: gracias por esto. Puede que le haya hecho al libro una injusticia al malinterpretarlo también, pero quizás valió la pena exponer mi ignorancia.
rosser
7

Como otros ya han mencionado, la estandarización realmente no tiene nada que ver con la colinealidad.

Colinealidad perfecta

XμXσX

ZX=XμXσX

μZ=0σZ=1E(X+a)=E(X)+aE(bX)=bE(X)Var(X+a)=Var(X)Var(bX)=b2Var(X)Xa,b

XYλ0λ1

Y=λ0+λ1X

XμXσXYμY=λ0+λ1μXσY=λ1σXZX=ZX

Correlación

Por supuesto, la colinealidad perfecta no es algo que veamos a menudo, pero las variables fuertemente correlacionadas también pueden ser un problema (y son especies relacionadas con la colinealidad). Entonces, ¿la estandarización afecta la correlación? Compare los siguientes gráficos que muestran dos variables correlacionadas en dos gráficos antes y después de la escala: ingrese la descripción de la imagen aquí

¿Puedes ver la diferencia? Como puede ver, eliminé a propósito las etiquetas del eje, así que para convencerlo de que no estoy haciendo trampa, vea los gráficos con etiquetas agregadas:

ingrese la descripción de la imagen aquí

Matemáticamente hablando, si la correlación es

Corr(X,Y)=Cov(X,Y)Var(X)Var(Y)

entonces con variables colineales tenemos

Corr(X,Y)=E[(XμX)(YμY)]σXσY=E[(XμX)(λ0+λ1Xλ0λ1μX)]σXλ1σX=E[(XμX)(λ1Xλ1μX)]σXλ1σX=E[(XμX)λ1(XμX)]σXλ1σX=λ1E[(XμX)(XμX)]σXλ1σX=E[(XμX)(XμX)]σXσX

ahora desde ,Cov(X,X)=Var(X)

=Cov(X,X)σX2=Var(X)Var(X)=1

Mientras que con variables estandarizadas

Corr(ZX,ZY)=E[(ZX0)(ZY0)]1×1=Cov(ZX,ZY)=Var(ZX)=1

ya que ...ZX=ZY

Finalmente, observe que de lo que Kruschke está hablando es que la estandarización de las variables facilita la vida de la muestra de Gibbs y conduce a la reducción de la correlación entre la intercepción y la pendiente en el modelo de regresión que presenta. No dice que la estandarización de variables reduce la colinealidad entre las variables.

Tim
fuente
0

La estandarización no afecta la correlación entre variables. Permanecen exactamente igual. La correlación captura la sincronización de la dirección de las variables. No hay nada en la estandarización que cambie la dirección de las variables.

Si desea eliminar la multicolinealidad entre sus variables, sugiero utilizar el Análisis de componentes principales (PCA). Como saben, PCA es muy eficaz para eliminar el problema de multicolinealidad. Por otro lado, PCA hace que las variables combinadas (componentes principales P1, P2, etc.) sean bastante opacas. Un modelo PCA siempre es mucho más difícil de explicar que uno multivariante más tradicional.

Sympa
fuente
Una alternativa moderna, a menudo mejor, es la regularización.
kjetil b halvorsen
He probado la selección de variables entre algoritmos estándar por pasos y LASSO. Y, LASSO viene en un segundo muy distante. LASSO penaliza las influencias variables, puede seleccionar variables débiles sobre variables más fuertes. Incluso puede causar cambios en los signos variables. Y, desglosa todo el marco de significación estadística, intervalos de confianza e intervalos de predicción. LASSO puede a veces funcionar. Pero, mire con cuidado el gráfico de MSEs vs. Lambda y los gráficos de Coeficientes vs. Lambda. Ahí es donde puede observar visualmente si su modelo LASSO funcionó.
Sympa
0

No reduce la colinealidad, puede reducir el VIF. Comúnmente usamos VIF como indicador de preocupaciones por colinealidad.

Fuente: http://blog.minitab.com/blog/adventures-in-statistics-2/what-are-the-effects-of-multicollinearity-and-when-can-i-ignore-them

Bill Chen
fuente
2
Bienvenido al sitio. En la actualidad, esto es más un comentario que una respuesta. Puede expandirlo, tal vez dando un resumen de la información en el enlace, o podemos convertirlo en un comentario para usted. Además, mi lectura de la publicación vinculada no es que la estandarización reduzca el VIF sin reducir la colinealidad. Su ejemplo es muy específico y más matizado que eso.
gung
-3

La estandarización es una forma común de reducir la colinealidad. (Debería poder verificar rápidamente que funciona probándolo en un par de variables). Si lo hace de forma rutinaria depende de la cantidad de colinealidad del problema en sus análisis.

Editar: veo que estaba en un error. Sin embargo, lo que sí hace la estandarización es reducir la colinealidad con los términos del producto (términos de interacción).

rolando2
fuente
Hmm, ¿podrías explicarlo? La estandarización solo cambia la media y la varianza de una variable aleatoria (a 0 y 1 respectivamente). Esto no debería cambiar la correlación entre dos variables. Veo cómo la estandarización puede mejorar la eficiencia computacional, pero no cómo reduce la multicolinealidad.
Charlie
No, estoy perdido ... ¿cómo puede eso cambiar la dependencia lineal de los elementos de la columna en la matriz de predictores? (¿No es eso de lo que se trata la colinealidad?)
rosser
Aunque no es correcto que la estandarización cambie la colinealidad en un sentido puramente matemático, puede mejorar la estabilidad numérica de los algoritmos para resolver sistemas lineales. Esa podría ser la fuente de la confusión en esta respuesta.
Whuber
La estandarización simplemente no reduce la multicolinealidad. Por lo general, no cambia la correlación entre las variables en absoluto.
Sympa