混合效应模型单项删除——我应该改变我的随机效应吗?

机器算法验证 方差分析 混合模式 模型比较 平方和
2022-03-25 01:45:54

简而言之

我最近在lme4项目的 GitHub 上进行了一次关于如何正确测试混合效果模型中效果的重要性的小对话,这让我意识到我真的不太了解/了解我在做什么,即我的类型平方和。

所以我阅读了更多关于不同类型的平方和(例如这个页面),我开始怀疑:因为在不包括相应的主要效果的情况下测试交互是没有意义的(假设在Trial:Condition没有Conditionin的情况下进行测试)模型),为固定效应中不存在的术语包含随机斜率是否有意义?

完整示例(以防不清楚)

让我们考虑以下混合效应模型:

Prop ~ Trial + Condition + Trial:Condition + (1 + Trial | Participant)

现在假设我想做一个 II 型平方和(顺便说一下,如果我错了,请纠正我),我需要运行这些模型比较:

order1           <- Prop ~ Trial + Condition + (1 + Trial | Participant)
order1.condition <- Prop ~         Condition + (1 + Trial | Participant)
order1.trial     <- Prop ~ Trial             + (1 + Trial | Participant)
order2           <- Prop ~ Trial + Condition + Trial:Condition +
                             (1 + Trial | Participant)

anova(order1.condition, order1.full) # Test effect of Trial
anova(order1.trial, order1.full) # Test effect of Condition
anova(order1.full, order2) # Test effect of Trial:Condition

现在,在我order1.condition上面的模型中,Trial从固定效应项中删除,但我仍然告诉模型计算Trialby的随机斜率Participant有关系吗?我也应该Trial从我的随机效果中删除吗?

PS:我只是用伪代码编写,让您了解我在说什么。

PPS:我链接到的关于 SS 类型的页面确实说你可以做一个违反边际原则的 III 型 SS,但我从我在 GitHub 上的对话中得知,这是一件非常糟糕且荒谬的事情

1个回答

通常,对于lme4具有类似参数化的其他软件包(至少在用户界面级别),对于固定效应中不存在的术语具有随机斜率是没有意义的。

这样做的原因很简单:随机效应(或更准确地说,BLUP/条件模式)被计算为与总体水平/固定效应的偏移量。因此,如果缺少给定的固定效应,那么这相当于假设总体水平效应为零。这是一个相当强的假设,而不是我们通常想要的。它还会弄乱方差的估计(随机效应的实际关键部分,在其他情况下称为方差分量),因为方差计算为与均值的均方距离,如果您假设的均值与实际值不匹配,那么您的方差将是错误的。(请注意,这是将随机效应计算为总体均值的偏移量的部分原因:这意味着随机效应的均值等于 0,因此公式的一部分只是抵消了。)

作为这种影响的一个例子,请考虑以下两个模型:

m <- lmer(Reaction ~ 1 + (1|Subject), sleepstudy)
m.0 <- lmer(Reaction ~ 0 + (1|Subject), sleepstudy)

(为了简单起见,我在这里使用截距术语而不是处理斜率,但相同的想法同样适用。)

随机效应表明模型实际上使用了偏移量:

> ranef(m)
$Subject
    (Intercept)
308   37.829172
309  -72.209815
310  -58.536726
330    4.087222
331    9.476087
...

> ranef(m.0)
$Subject
    (Intercept)
308    341.3933
309    214.7671
310    230.5013
330    302.5651
331    308.7663
...

第一组包含负值,因为一些受试者比总体平均速度快,而第二组仅包含正值,因为所有受试者都有积极的反应时间。

我们还可以通过结合偏移量和总体均值来提取单个预测,lme4这将有助于为您做到这一点:

> coef(m)
$Subject
    (Intercept)
308    336.3371
309    226.2981
310    239.9712
330    302.5951
331    307.9840
...

(对于m.0,这当然与随机效应相同。)

请注意,这些值与来自 的随机效应不匹配m.0这很重要——两个模型的随机效应都缩小到 0,但是m这对应于缩小偏移量,即将单个预测缩小到(大)均值。对于m.0,这对应于将个体预测缩小到 0。这当然会产生不同的结果——所有个体预测都会m.0变小,但个体预测m会变大或变小,具体取决于个体受试者是更快还是更慢比(大)平均反应时间。

方差估计也不同:

> VarCorr(m)
 Groups   Name        Std.Dev.
 Subject  (Intercept) 35.754  
 Residual             44.259  
> VarCorr(m.0)
 Groups   Name        Std.Dev.
 Subject  (Intercept) 300.505 
 Residual              44.259

显然m.0在某种相当基本的意义上是错误的:受试者之间的标准偏差不是300.505!现在,总体而言m.0,在拟合数据方面做得不错(对数似然m

现在,可以对混合模型进行参数化,以使随机效应不会以这种方式居中(或“球形”),而且我确实相信brms对其 Stan 代码使用非居中参数化(居中参数化的方式有些问题)在哈密顿量 MCMC 的临界集中创建了奇怪的阻塞点),但最流行的包的公式接口—— nlme, lme4, brms, rstanarm——仍然需要一个居中的规范。

由于您最近发现了不同类型的平方和,请务必查看

  • Venables' Exegeses on Linear Models,在此类讨论中经常被提及,尤其是关于 III 型 SS 是否甚至检查有趣的假设(而不是通常对它们是否“有意义”的咆哮)。

  • John Fox 的优秀著作Applied Regression Analysis & Generalized Linear Models该指数很容易有一个条目“边际性,原则”,其中提到了文本中的许多不同点是否与此相关的问题(以及因此类型 II 与 III SS)开始发挥作用。

  • car::Anova()它可以计算模型的 II 型和 III 型 SS lmer,或者使用χ2分布(即处理F分母自由度为无限,类似于处理值作为z值)或使用FKenward-Roger 的分布近似于分母自由度。car是“Companion to Applied Regression”的缩写。)

  • lmerTest::anova()它将计算模型的类型 I、II 和 III 平方和, lmer其中使用用于分母自由度的 Satterthwaite 或 Kenward-Roger 近似的选项。请注意,在撰写本文时,与 CRAN 上的当前版本相比,beta 版中有一个主要的包重写,通常可以提高计算效率(通过缓存 ddf 近似值)。