变量是否可以作为固定效应和随机效应同时包含在混合模型中?

机器算法验证 r 混合模式 lme4-nlme
2022-03-08 00:42:14

我正在构建一个混合模型,其中相同的 4 个组在度量 M 上重复测试 5 周。我想测试组对度量 M 的影响。我可以构建如下模型(假设使用 R):

   lmer(M ~ Time + Group + (1|Group), data = mydata)

哪里group同时存在固定效应和随机效应?强加一个群体的两种效果在概念上似乎是矛盾的。但是如果我想测试群体效应呢?

1个回答

首先要确定Group被定义为一个因素。您当前的模型是

Mij=αi+β1Timeij+ui+eij,
在哪里i表示Groupj时间点。如果你运行你的模型并用 测试ranef(),你会发现很难区分αiui在估计中,因此ui几乎等于 0。

两种可能的替代模型是:

  1. 随机效应模型,
    Mij=β0+β1Timeij+ui+eij,
    在哪里β0是平均截距,ui是每个组的平均截距的随机个体偏差,并假设服从分布。
  2. 固定效应模型(在计量经济学的背景下),
    Mij=αi+β1Timeij+eij,
    在哪里αi是固定的个体截距。

更新:

我使用sleepstudy数据集作为说明。如果分组变量(一个因子)作为协变量(fm2下面的模型)包含在内,则随机效应及其方差都趋于为零。直观的解释是,αiui基本上模拟相同的数量(特定于组的截距),尽管假设一个是固定的,一个是随机的。大部分可变性首先被固定截距吸收(αi),所以随机截取ui趋向于全为零。下面列出了代码和结果。

> fm1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy, REML = F)
> re1 = as.matrix(ranef(fm1)$Subject)
> summary(as.vector(re1))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
-77.570  -7.460   5.701   0.000  15.850  71.920 
> VarCorr(fm1)
 Groups   Name        Std.Dev.
 Subject  (Intercept) 36.012  
 Residual             30.895  
> sd(re1)
[1] 35.76336


> fm2 <- lmer(Reaction ~ Days + Subject + (1 | Subject), sleepstudy, REML = F)
> re2 = as.matrix(ranef(fm2)$Subject)
> summary(as.vector(re2))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0       0       0       0       0       0 
> VarCorr(fm2)
 Groups   Name        Std.Dev.
 Subject  (Intercept)  0.00   
 Residual             29.31   
> sd(re2)
[1] 0

更新 2:

以前我使用过 ML,lmer因为我发现随机截距的 REML 方差估计在这种极端情况下似乎偏离了真实值。我知道在单个模型中同时包含固定和随机组特定截距可能没有意义,但这可能是一个有趣的例子。请注意,此模型与随机截距模型之间的唯一区别是固定效应的设计矩阵更大。

下面的lmer例子使用了REML,模型和上面的Model一样fm2估计的随机效应都接近于零,它们的标准差非常接近于零。我知道估计随机效应的标准偏差不是随机效应方差的完美估计,但两者应该以某种方式对应。但随机效应的 REML 方差估计值为 33,与零相差甚远。

> fm3 <- lmer(Reaction ~ Days + Subject + (1 | Subject), sleepstudy, REML = T, verbose = T)
> re3 = as.matrix(ranef(fm3)$Subject)
> summary(as.vector(re3))
      Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
-3.998e-12 -9.220e-13 -6.549e-13 -7.717e-13 -4.567e-13  6.893e-13 
> VarCorr(fm3)
 Groups   Name        Std.Dev.
 Subject  (Intercept) 33.050  
 Residual             30.991  
> sd(re3)
[1] 9.391908e-13

我也进行了测试Stata,它变得更加有趣。mixed命令使用 EM 算法,但它无法收敛,因此给出了非常大的估计值。据我了解,在这种情况下,REML 和 ML 应该没有太大区别。可能存在一些数值问题。鉴于估计依赖于迭代,当我有更多时间时,我会更多地考虑这一点。

. mixed reaction days i.subject || subject:, reml

Performing EM optimization: 

Performing gradient-based optimization: 

could not calculate numerical derivatives -- discontinuous region with missing values encountered
could not calculate numerical derivatives -- discontinuous region with missing values encountered

Computing standard errors:
standard-error calculation failed

Mixed-effects REML regression                   Number of obs     =        180
Group variable: subject                         Number of groups  =         18

                                                Obs per group:
                                                              min =         10
                                                              avg =       10.0
                                                              max =         10

                                                Wald chi2(18)     =     169.64
Log restricted-likelihood = -805.65036          Prob > chi2       =     0.0000

...

------------------------------------------------------------------------------
  Random-effects Parameters  |   Estimate   Std. Err.     [95% Conf. Interval]
-----------------------------+------------------------------------------------
subject: Identity            |
                  var(_cons) |   105231.5          .             .           .
-----------------------------+------------------------------------------------
               var(Residual) |   960.4566          .             .           .
------------------------------------------------------------------------------
LR test vs. linear model: chibar2(01) = 2.3e-13       Prob >= chibar2 = 1.0000

Warning: convergence not achieved; estimates are based on iterated EM