aL3*_*3xa 63 statistics regression r
我希望这个问题不会成为"问答"问题......这里说:(多)共线性是指回归模型中预测变量之间的极高相关性.如何治愈它们......好吧,有时你不需要"治愈"共线性,因为它不会影响回归模型本身,而是解释个体预测因子的影响.
发现共线性的一种方法是将每个预测变量作为因变量,将其他预测变量作为自变量,确定R 2,如果它大于.9(或.95),我们可以考虑预测变量冗余.这是一种"方法"......其他方法呢?其中一些是耗时的,比如从模型中排除预测变量并观察b系数变化 - 它们应该明显不同.
当然,我们必须始终牢记分析的具体背景/目标......有时候,唯一的补救措施就是重复研究,但是现在,我对以多种共线性(多)共线性筛选冗余预测因子的各种方式感兴趣发生在回归模型中.
Dir*_*tel 39
该kappa()功能可以提供帮助.这是一个模拟的例子:
> set.seed(42)
> x1 <- rnorm(100)
> x2 <- rnorm(100)
> x3 <- x1 + 2*x2 + rnorm(100)*0.0001    # so x3 approx a linear comb. of x1+x2
> mm12 <- model.matrix(~ x1 + x2)        # normal model, two indep. regressors
> mm123 <- model.matrix(~ x1 + x2 + x3)  # bad model with near collinearity
> kappa(mm12)                            # a 'low' kappa is good
[1] 1.166029
> kappa(mm123)                           # a 'high' kappa indicates trouble
[1] 121530.7
我们通过使第三个回归量越来越共线来进一步发展:
> x4 <- x1 + 2*x2 + rnorm(100)*0.000001  # even more collinear
> mm124 <- model.matrix(~ x1 + x2 + x4)
> kappa(mm124)
[1] 13955982
> x5 <- x1 + 2*x2                        # now x5 is linear comb of x1,x2
> mm125 <- model.matrix(~ x1 + x2 + x5)
> kappa(mm125)
[1] 1.067568e+16
> 
这使用了近似值,help(kappa)详情请参阅.  
Geo*_*tas 34
只是为了添加Dirk所说的条件数方法,一个经验法则是值CN > 30 indicate severe collinearity.除条件编号外,其他方法包括:
1)协方差矩阵的行列式,其范围从0(完全共线性)到1(无共线性)
# using Dirk's example
> det(cov(mm12[,-1]))
[1] 0.8856818
> det(cov(mm123[,-1]))
[1] 8.916092e-09
2)使用的事实,对角矩阵的行列式是特征值的产品=>的一个或多个特征值小的存在表明共线性
> eigen(cov(mm12[,-1]))$values
[1] 1.0876357 0.8143184
> eigen(cov(mm123[,-1]))$values
[1] 5.388022e+00 9.862794e-01 1.677819e-09
3)方差膨胀因子(VIF)的值.用于预测的VIF i是1 /(1-R_I ^ 2),其中R_I ^ 2是从预测我对剩余的预测结果的回归的R ^ 2.当至少一个自变量的VIF很大时,存在共线性.经验法则:VIF > 10 is of concern.有关R中的实现,请参见此处.我也想发表评论,使用R ^ 2的确定应共线齐头并进与散点图的目视检查,因为一个异常可以"因"共线的地方不存在,或者它的存在可以隐藏共线性.  
Jer*_*lim 18
你可能会喜欢Vito Ricci的参考卡"R函数用于回归分析" http://cran.r-project.org/doc/contrib/Ricci-refcard-regression.pdf
它简洁地列出了R中许多有用的回归相关函数,包括诊断函数.特别是,它列出了可以评估多重共线性vif的car包中的功能.
http://en.wikipedia.org/wiki/Variance_inflation_factor
对多重共线性的考虑通常与评估变量重要性的问题密切相关.如果这适用于您,也许请查看relaimpo包裹:http://prof.beuth-hochschule.de/groemping/relaimpo/
另见本书第9.4节:使用R [Faraway 2002]的实用回归和Anova.
可以通过以下几种方式检测共线性:
检查预测变量的相关矩阵将揭示大的成对共线性.
所有其他预测变量的x_i回归得到R ^ 2_i.对所有预测变量重复.接近1的R ^ 2_i表示存在问题 - 可以找到有问题的线性组合.
检查特征值t(X) %*% X,其中X表示模型矩阵; 小的特征值表明存在问题.2范数条件数可以显示为矩阵的最大非零奇异值的比率($\kappa =\sqrt {\ lambda_1 /\lambda_p} $;参见?kappa); \kappa >= 30被认为是大的.
由于到目前为止还没有提到VIF,我将添加我的答案.方差膨胀因子> 10通常表示预测变量之间的严重冗余.VIF表示如果变量与其他变量不高度相关,则变量系数的方差会增加的因子.
vif()在包中可用cars并应用于类(lm)的对象.它返回x1,x2的vif...对象中的xn lm().最好排除vif> 10的变量,或者将变量引入vif> 10的变量.
| 归档时间: | 
 | 
| 查看次数: | 35258 次 | 
| 最近记录: |