随机与固定效应:为什么斜率的标准误差相同,但截距却大不相同?

机器算法验证 r 混合模式 lme4-nlme 标准错误
2022-03-06 13:35:34

我注意到,当我比较固定效应模型和混合效应模型的结果时,我得到的(固定效应)协变量斜率的标准误差非常相似,而在截距上,固定效应模型的标准误差要小得多(而参数估计本身几乎相同)。为什么是这样?


例子

例如,我得到了这些结果(此处删节;底部有完整结果):

Mixed Model
              Estimate Std. Error t value
 (Intercept) 21.040772   1.921112   10.95
 x           -1.007014   0.009933 -101.38

Fixed Effects Model
              Estimate Std. Error t value Pr(>|t|)    
 (Intercept) 21.043157   0.055888  376.52   <2e-16 ***
 x           -1.007443   0.009934 -101.41   <2e-16 ***

对于看起来像这样的数据(不同级别的不同符号p):

在此处输入图像描述

从这段代码:

set.seed(1)    

generatepoint = function(ppt,n){
  x = rnorm(n)+ppt
  y = -x + 10 + 2*ppt + rnorm(n,sd=.1)
  cbind(x=x,y=y,p=ppt)
}

data = as.data.frame(do.call(rbind,lapply(1:10,generatepoint,10)))

plot(y~x,data=data,pch=data$p)

data$p = factor(data$p)

cat("\n\nMixed Model\n\n")
mod = lmer(y~x+(1|p),data=data)
print(summary(mod))

cat("\n\nFixed Model\n\n")
contrasts(data$p) <- contr.sum(10)
fmod = lm(y~x+p,data=data)
print(summary(fmod))

这是完整的输出:

Mixed Model

Linear mixed model fit by REML ['lmerMod']
Formula: y ~ x + (1 | p)
Data: data

REML criterion at convergence: -88.6

Scaled residuals: 
  Min      1Q  Median      3Q     Max 
-2.6303 -0.6669 -0.1463  0.6713  2.2773 

Random effects:
  Groups   Name        Variance Std.Dev.
p        (Intercept) 36.87548 6.07252 
Residual              0.00807 0.08983 
Number of obs: 100, groups:  p, 10

Fixed effects:
  Estimate Std. Error t value
(Intercept) 21.040772   1.921112   10.95
x           -1.007014   0.009933 -101.38

Correlation of Fixed Effects:
  (Intr)
x -0.029


Fixed Model


Call:
  lm(formula = y ~ x + p, data = data)

Residuals:
  Min       1Q   Median       3Q      Max 
-0.23547 -0.06006 -0.01333  0.06017  0.20400 

Coefficients:
  Estimate Std. Error t value Pr(>|t|)    
(Intercept) 21.043157   0.055888  376.52   <2e-16 ***
  x           -1.007443   0.009934 -101.41   <2e-16 ***
  p1          -9.009845   0.051524 -174.87   <2e-16 ***
  p2          -7.017192   0.045469 -154.33   <2e-16 ***
  p3          -5.005483   0.036105 -138.64   <2e-16 ***
  p4          -3.034799   0.029087 -104.34   <2e-16 ***
  p5          -0.993759   0.027279  -36.43   <2e-16 ***
  p6           0.992106   0.028082   35.33   <2e-16 ***
  p7           2.966062   0.030515   97.20   <2e-16 ***
  p8           4.987105   0.032854  151.79   <2e-16 ***
  p9           7.100627   0.045236  156.97   <2e-16 ***
  ---
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.08983 on 89 degrees of freedom
Multiple R-squared:  0.9993,    Adjusted R-squared:  0.9992 
F-statistic: 1.194e+04 on 10 and 89 DF,  p-value: < 2.2e-16
2个回答

好的,我想我现在明白了。我想出一种理解它的方法可能是通过使用参数引导程序mod作为bootMer生成标准错误的替代方法。此功能通过根据从 中的给定混合模型中拟合的参数随机采样新数据集lmer,然后将新模型拟合到该模拟数据,以查看来自同一总体的不同样本的参数估计值如何变化。它特别提供了一个论点,use.u,它允许用户选择是否对每个样本重新采样随机效应。如果我们选择不重新采样它们,那么我们正在模拟一个随机效应每次都以相同值出现的世界——听起来更像是固定效应?——好吧,选择该设置会给我们带来与固定效应模型相同的标准误差!另一方面,选择模拟u,我们得到与混合效应模型相同的标准误差。(代码和输出见下文!)

当然,这符合随机效应的想法,因为每次都会出现不同的水平,而不是固定效应不会改变(尽管我在回答这个问题时唯一的困惑是这似乎是一个在一些评价很高的 StackExchange 答案(例如这个)中被驳斥的定义。但这对问题中提出的标准错误是有意义的:如果固定效应确实是“固定的”,那么我们是在这些特定级别的背景下进行推断固定效应:在问题的示例中,在重复实验中,我们预计这些点会在它们当前所在的线的范围内晃动,但这些线本身不会移动太多。另一方面,如果这些线的截距是随机效应,那么这些线应该会出现在每个新样本的不同位置,而我们对“中间”在哪里的想法就不太清楚了:对于所有我们知道,这个样本可能会出现所有十个水平的随机效应都低于平均值,例如,在这种情况下,真实平均值可能甚至高于情节中的所有线条。另一方面,线条本身始终指向 -1 的梯度,无论我们将这些线条的高度视为固定的还是随机的,我们都会给定的线条中看到相同的行为,因此我们应该期望得出相同的推论围绕两个模型中的梯度。


代码和输出:

> booted.simulate.u = bootMer(mod,fixef,nsim=10000,use.u=FALSE)
> booted.fix.u      = bootMer(mod,fixef,nsim=10000,use.u=TRUE )

> print(apply(booted.simulate.u$t,2,sd))
(Intercept)           x 
1.915025294 0.009903413 

> print(apply(booted.fix.u$t,2,sd))
(Intercept)           x 
0.055405505 0.009868006 

拟合固定或随机截距的基本原理大致相同。选择最终归结为功率:需要相当多的功率才能将固定效应与每个集群的一个级别相匹配。您有 10 个包含 90 个观测值的集群。

固定效应和混合效应模型中称为“截距”的术语有不同的解释。对于固定模型,截距是通过对比生成的,以估计集群中的预测均值。的人的期望值,该人没有特别从任何聚类中提取(或者类似地,对该人可能属于的所有可能聚类进行平均)。p1x=0X=0

您会在固定效应输出中注意到不包含在术语中。(intercept) 是 12。随后的的平均差因此,每个模拟它们往往高出 2 个单位。p1p2,p3,p1

您使用对比然后将固定截距边缘化为一个以 21 为中心的大均值,您会注意到它大约是 12, 14, 16, 18, 20, 22, 24 , 26, 28, 30]。调整的固定效应模型中的截距项获得的值更精确px

所以这个值与混合模型有相同的解释。为什么推理不一样?在这种情况下,基于 Wald 的推论(从 获得summary.merMod)是不合适的。R 中的文档指向使用bootMerconfint使用配置文件可能性。固定效应和随机效应的联合分布是分层的,因此对于固定效应模型,您需要执行某种边缘化。bootstrap 和轮廓似然方法类似于 MCMC 和数值积分。这就是为什么这些结果最终一致。