【发布时间】:2021-10-28 17:16:15
【问题描述】:
我看到过类似的帖子,例如 this one,其中说收到错误消息:Coefficients: (1 not defined because of singularities) 是因为 lm() 调用中使用的预测变量之间几乎完全相关。
但就我而言,预测变量之间没有近乎完美的相关性,但在lm() 的输出中仍有一个系数 (X_wthn_outcome) 返回 NA。
不知道返回NA的系数有什么问题?
出于重现性目的,下面提供了完全相同的数据和代码。
library(dplyr)
set.seed(132)
(data <- expand.grid(study = 1:1e3, outcome = rep(1:50,2)))
data$X <- rnorm(nrow(data))
e <- rnorm(nrow(data), 0, 2)
data$yi <- .8 +.6*data$X + e
dat <- data %>%
group_by(study) %>%
mutate(X_btw_study = mean(X), X_wthn_study = X-X_btw_study) %>%
group_by(outcome, .add = TRUE) %>%
mutate(X_btw_outcome = mean(X), X_wthn_outcome = X-X_btw_outcome) %>% ungroup()
round(cor(select(dat,-study,-outcome,-X,-yi)),3)
# X_btw_study X_wthn_study X_btw_outcome X_wthn_outcome
#X_btw_study 1.000 0.000 0.141 0.00
#X_wthn_study 0.000 1.000 0.698 0.71
#X_btw_outcome 0.141 0.698 1.000 0.00
#X_wthn_outcome 0.000 0.710 0.000 1.00
summary(lm(yi ~ 0 + X_btw_study + X_btw_outcome + X_wthn_study
+ X_wthn_outcome, data = dat))
#Coefficients: (1 not defined because of singularities)
# Estimate Std. Error t value Pr(>|t|)
#X_btw_study 0.524093 0.069610 7.529 5.15e-14 ***
#X_btw_outcome 0.014557 0.013694 1.063 0.288
#X_wthn_study 0.589517 0.009649 61.096 < 2e-16 ***
#X_wthn_outcome NA NA NA NA ## What's wrong with this variable
【问题讨论】:
-
您说“预测变量之间没有近乎完美的相关性”,但双向共线性与多重共线性不同。如果您有很多分类预测变量(或一些样本量较小的分类预测变量),那么在没有任何看起来令人担忧的双向相关的情况下获得“完美的多重共线性”并不难。
-
@IRTFM,我没有分类预测。但是您能否在我上面的数据中说明多重共线性的确切含义?
标签: r dplyr regression linear-regression lm