添加随机效应影响系数估计


10

我一直被教导随机效应只会影响方差(误差),而固定效应只会影响均值。但是我发现了一个例子,其中随机效应也会影响均值-系数估计:

require(nlme)
set.seed(128)
n <- 100
k <- 5
cat <- as.factor(rep(1:k, each = n))
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
plot(x, y)

# simulate missing data
y[c(1:(n/2), (n*k-n/2):(n*k))] <- NA

m1 <- lm(y ~ x)
summary(m1)

m2 <- lm(y ~ cat + x)
summary(m2)

m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
summary(m3)

您可以看到,x模型的估计系数为m1-0.013780,而模型的估计系数为m30.0011713-两者均明显不同于零。

请注意,当我删除模拟缺失数据的行时,结果是相同的(它是完整矩阵)。

这是为什么?

PS:请注意,我不是专业的统计学家,因此,如果您要使用大量数学方法进行回答,请也对虚拟变量进行一些简单的总结:-)


我想您想说的是“从模型中m3它是0.0011713” m2
usεr11852

抱歉@ user11852,是的,您是正确的,谢谢。(顺便说一句,对于m2它也是有效的(其是受试者另一个问题)。
好奇

Answers:


11

“我一直被教导随机效应只会影响方差(误差),而固定效应只会影响均值。”

如您所见,这仅适用于没有连续预测变量的平衡,完整(即,没有丢失的数据)数据集。换句话说,对于经典ANOVA文本中讨论的各种数据/模型。在这些理想情况下,可以相互独立地估计固定效应和随机效应。

当这些条件不成立时(通常在“现实世界”中不存在),固定效应和随机效应就不会独立。除了有趣的是,这就是为什么使用迭代优化方法来估计“现代”混合模型的原因,而不是像传统的混合方差分析中那样使用一些矩阵代数来精确求解的原因:为了估计固定效果,我们必须知道随机效应,但是为了估计随机效应,我们必须知道固定效应!与当前问题更相关,这还意味着当数据不平衡/不完整和/或模型中存在连续的预测变量时,调整混合模型的随机效应结构可能会更改模型固定部分的估计,反之亦然。

编辑2016-07-05。从评论中:“ 您能否详细说明或引用为何连续预测变量将影响模型固定部分的估计?

如果(但不仅限于)预测变量的方差在整个集群中不同,则模型固定部分的估计将取决于模型随机部分(即估计的方差分量)的估计。如果任何预测变量都是连续的(至少在“真实世界”数据中,这几乎可以肯定是正确的)-从理论上讲,例如在构造的数据集中,这可能是不正确的。


您能否详细说明或引用为什么连续的预测变量将影响模型固定部分的估算?
robin.datadrivers

@ robin.datadrivers好吧,我对此做了一点补充
Jake Westfall

3

在第一个层面上,我认为,所有被您忽略的收缩向人口值; “ 与混合对象最小二乘估计相比,混合影响模型的每个对象的斜率和截距更接近总体估计。 ” 1]。以下链接可能也有帮助(对于我的混合模型,正确的描述是什么?),请参阅Mike Lawrence的答案)。

此外,我认为您在玩具示例中不太幸运,因为您拥有完美平衡的设计,在没有缺失值的情况下,您拥有完全相同的估算值。

请尝试以下具有相同过程但没有缺失值的代码:

 cat <- as.factor(sample(1:5, n*k, replace=T) ) #This should be a bit unbalanced.
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma) 

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits= 7,fixef(m3)) ==  round(digits=7, coef(m1)) #Not this time lad.
 #(Intercept)           x 
 #      FALSE       FALSE 

现在,由于您的设计没有达到完美的平衡,因此您没有相同的系数估算值。

实际上,如果您以愚蠢的方式处理缺失值模式(例如:),y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA那么您的设计仍将保持完美平衡,您将再次获得相同的系数。

 require(nlme)
 set.seed(128)
 n <- 100
 k <- 5
 cat <- as.factor(rep(1:k, each = n))
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
 plot(x, y)

 # simulate missing data in a perfectly balanced way
 y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits=7,fixef(m3)) ==  round(digits=7, coef(m1)) #Look what happend now...
 #(Intercept)           x 
 #       TRUE        TRUE 

您可能会被原始实验的完美设计所误导。当您将NA插入到非平衡距离中时,您改变了个体可以相互借鉴多少“强度”的模式。

简而言之,您看到的差异是由于收缩效果引起的,更具体地说,是由于您用非完美平衡的缺失值扭曲了原始的完美平衡设计。

参考资料 1:Douglas Bates lme4:使用R进行混合效果建模,第71-72页

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.