标准化自变量是否会降低共线性?


12

我在Bayes / MCMC上看到了一篇很好的文章。IT建议您对自变量进行标准化将使MCMC(Metropolis)算法更有效,但也可能会降低(多重)共线性。可以吗?这是我应该做的标准工作吗(抱歉)。

Kruschke,2011年,《进行贝叶斯数据分析》。(美联社)

编辑:例如

     > 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 

尽管并没有限制矢量的线性相关性,但这并没有降低相关性,因此也没有降低。

这是怎么回事?

[R

Answers:


19

它根本不会改变主要效果之间的共线性。缩放也不是。任何线性变换都不会做到这一点。它所改变的是主要效果及其相互作用之间的相关性。即使A和B独立且相关性为0,A和A:B之间的相关性也将取决于比例因子。

在R控制台中尝试以下操作。请注意,rnorm仅使用您设置的总体值从正态分布生成随机样本,在这种情况下为50个样本。该scale函数将样本标准化为平均值0和SD为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

这些独立样本的偶然相关性接近于0。现在归一化为0的平均值和1的SD。

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

再次,这是即使均值为0和SD = 1两者的值完全相同ab

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

这也非常接近0。(a * b可以视为交互项)

但是,通常SD和预测变量的均值会相差很多,因此让我们进行更改b。我将不重新取样b以重新调整原始样本的平均值,使其平均值为5,SD为2。

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

同样,我们一直都看到这种熟悉的关联。缩放正在对之间的相关性没有影响ab。但!!

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

现在,这将具有很大的相关性,您可以通过居中和/或标准化来消除这种相关性。我通常只选择中心。


1
+1获得全面且易于理解的答案(含代码!)
彼得·弗洛姆(Peter Flom)-恢复莫妮卡(Monica)

1
如果要包括一个二次项,它也很有用。
Aniko

绝对是Aniko
John

1
最佳答案-谢谢。我对这本书的误解也可能是不公正的,但也许值得揭露我的无知。
rosser 2011年

7

正如其他人已经提到的那样,标准化实际上与共线性无关。

完美的共线性

XμXσX

žX=X-μXσX

μž=0σž=1个ËX+一种=ËX+一种ËbX=bËXV一种[RX+一种=V一种[RXV一种[RbX=b2V一种[RXX一种b

Xÿλ0λ1个

ÿ=λ0+λ1个X

XμXσXÿμÿ=λ0+λ1个μXσÿ=λ1个σXžX=žX

相关性

当然,理想共线性不是我们经常看到的东西,但是高度相关的变量也可能是一个问题(它们是具有共线性的相关物种)。那么标准化会影响相关性吗?请比较以下图表,以显示缩放前后两个图表上的两个相关变量: 在此处输入图片说明

您看得出来差别吗?如您所见,我有意删除了轴标签,为了使您确信自己没有作弊,请查看带有添加标签的图:

在此处输入图片说明

从数学上讲,如果相关性

CØ[R[RXÿ=CØvXÿV一种[RXV一种[Rÿ

然后用共线变量

CØ[R[RXÿ=Ë[X-μXÿ-μÿ]σXσÿ=Ë[X-μXλ0+λ1个X-λ0-λ1个μX]σXλ1个σX=Ë[X-μXλ1个X-λ1个μX]σXλ1个σX=Ë[X-μXλ1个X-μX]σXλ1个σX=λ1个Ë[X-μXX-μX]σXλ1个σX=Ë[X-μXX-μX]σXσX

现在由于,CØvXX=V一种[RX

=CØvXXσX2=V一种[RXV一种[RX=1个

当使用标准变量时

CØ[R[RžXžÿ=Ë[žX-0žÿ-0]1个×1个=CØvžXžÿ=V一种[RžX=1个

因为 ...žX=žÿ

最后,请注意Kruschke所说的是,变量的标准化使Gibbs采样器的工作变得更轻松,并减少了他提出的回归模型中截距和斜率之间的相关性。他没有说标准化变量会降低变量之间的共线性。


0

标准化不影响变量之间的相关性。它们保持完全相同。相关性捕获变量方向的同步。标准化中没有任何东西可以改变变量的方向。

如果要消除变量之间的多重共线性,建议使用主成分分析(PCA)。如您所知,PCA在消除多重共线性问题方面非常有效。另一方面,PCA使组合变量(主要成分P1,P2等)变得非常不透明。PCA模型的解释总是比传统的多元模型更具挑战性。


通常更好的一种现代替代方法是正则化。
kjetil b halvorsen

我已经测试了标准逐步算法和LASSO之间的变量选择。而且,LASSO排在第二位。LASSO惩罚变量影响,它可以选择弱变量而不是强变量。它甚至可能导致变量符号改变。并且,它分解了统计意义,置信区间和预测区间的整个框架。LASSO有时可以工作。但是,请仔细查看MSE与Lambda图以及系数与Lambda图。在此可以直观地观察LASSO模型是否起作用。
Sympa

0

它不会降低共线性,可以降低VIF。通常,我们使用VIF作为关注共线性的指标。

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


2
欢迎来到该网站。目前,这更多是评论而不是答案。您可以通过在链接上提供信息摘要来扩展它,或者我们可以将其转换为注释。另外,我对链接文章的了解并不完全是标准化可以降低VIF而不降低共线性。他们的例子是非常具体的,而且比它更细微。
gung-恢复莫妮卡

-3

标准化是减少共线性的一种常用方法。(您应该能够通过在几个变量对上进行试验来很快验证它是否有效。)是否按常规进行操作取决于分析中共线性的问题程度。

编辑:我看到我是错误的。但是,标准化所做的是减少与产品术语(交互作用术语)的共线性。


嗯,你能解释一下吗?标准化只会更改随机变量的均值和方差(分别为0和1)。这不应更改两个变量之间的相关性。我看到了标准化如何提高计算效率,但没有看到它如何降低多重共线性。
查理

不,我迷路了……这怎么可能改变预测变量矩阵中列元素的线性相关性。(这不是共线性的意思吗?)
rosser 2011年

尽管标准化从纯粹的数学意义上改变共线性是不正确的,但它可以提高求解线性系统的算法的数值稳定性。这可能是此答复中造成混淆的原因。
Whuber

标准化只是不会降低多重共线性。它通常根本不会改变变量之间的相关性。
Sympa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.