我目前正在运行一些混合效果线性模型。
我在R中使用软件包“ lme4”。
我的模型采用以下形式:
model <- lmer(response ~ predictor1 + predictor2 + (1 | random effect))
在运行模型之前,我检查了预测变量之间可能的多重共线性。
我这样做是:
建立预测变量的数据框
dummy_df <- data.frame(predictor1, predictor2)
使用“ cor”功能来计算预测变量之间的Pearson相关性。
correl_dummy_df <- round(cor(dummy_df, use = "pair"), 2)
如果“ correl_dummy_df”大于0.80,则我认为预测变量1和预测变量2的相关性太高,因此它们未包含在我的模型中。
在阅读时,将出现更多客观的方法来检查多重共线性。
有人对此有任何建议吗?
“方差通胀因子(VIF)”似乎是一种有效方法。
可以使用AED程序包中的函数“ corvif”(非cran)来计算VIF。可以在http://www.highstat.com/book2.htm上找到该软件包。该软件包支持以下书籍:
Zuur,AF,Ieno,EN,Walker,N.,Saveliev,AA和Smith,GM2009。《混合效应模型和生态学扩展》 R,第1版。纽约斯普林格。
似乎一般的经验法则是,如果VIF> 5,则预测变量之间的多重共线性较高。
使用VIF是否比简单的Pearson相关性更强大?
更新资料
我在以下位置找到了一个有趣的博客:
http://hlplab.wordpress.com/2011/02/24/diagnosing-collinearity-in-lme4/
博主提供了一些有用的代码,可为来自lme4软件包的模型计算VIF。
我已经测试了代码,并且效果很好。在随后的分析中,我发现模型的多重共线性不是一个问题(所有VIF值均小于3)。鉴于我之前已经发现某些预测变量之间存在较高的皮尔逊相关性,因此这很有趣。
http://highstat.com/Books/BGS/GAMM/RCodeP2/HighstatLibV6.R
AED
包装已终止;相反,仅source("http://www.highstat.com/Book2/HighstatLibV6.R")
用于corvif
功能。(2)希望能提供一个真实的答案,但(a)我相信VIF考虑了多重共线性(例如,您可能有三个预测变量,它们都不具有很强的成对相关性,但是A和B的线性组合与C强烈相关)和(b)对于删除共线术语的智慧,我有强烈的保留;参见Graham Ecology 2003,doi:10.1890 / 02-3114