我目前正在运行一些混合效应线性模型。
我在 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,那么我认为 predictor1 和 predictor2 的相关性太高,它们没有包含在我的模型中。
在做一些阅读时,会出现更客观的方法来检查多重共线性。
有人对此有什么建议吗?
“方差膨胀因子(VIF)”似乎是一种有效的方法。
VIF 可以使用 AED 包(非 cran)中的函数“corvif”计算。该软件包可在http://www.highstat.com/book2.htm找到。该软件包支持以下书籍:
Zuur, AF, Ieno, EN, Walker, N., Saveliev, AA & Smith, GM 2009。R 生态学中的混合效应模型和扩展,第 1 版。斯普林格,纽约。
看起来一般的经验法则是,如果 VIF > 5,则预测变量之间的多重共线性很高。
使用 VIF 是否比简单的 Pearson 相关更可靠?
更新
我在以下位置找到了一个有趣的博客:
http://hlplab.wordpress.com/2011/02/24/diagnosing-collinearity-in-lme4/
博主提供了一些有用的代码来计算 lme4 包中模型的 VIF。
我已经测试了代码并且效果很好。在我随后的分析中,我发现多重共线性对我的模型来说不是问题(所有 VIF 值 < 3)。这很有趣,因为我之前发现一些预测变量之间的 Pearson 相关性很高。