将固定效果嵌套在随机效果中是否有意义,或者如何在 R(aov 和 lmer)中对重复测量进行编码?

机器算法验证 r 方差分析 混合模式 重复测量 lme4-nlme
2022-02-13 12:45:03

我一直在查看@conjugateprior 对 lm/lmer R 公式的概述,并被以下条目弄糊涂了:

现在假设 A 是随机的,但 B 是固定的并且 B 嵌套在 A 中。

aov(Y ~ B + Error(A/B), data=d)

lmer(Y ~ B + (1 | A:B), data=d) 下面为同一案例提供了类似的混合模型公式。

我不太明白这是什么意思。在将受试者分为几组的实验中,我们将一个随机因素(受试者)嵌套在一个固定因素(组)中。但是如何将固定因子嵌套在随机因子中呢?固定在随机主题中的东西?甚至可能吗?如果不可能,这些 R 公式是否有意义?


提到此概述部分基于个性项目关于在 R 中进行 ANOVA 的页面,该页面基于本教程关于 R 中的重复测量下面给出了重复测量方差分析的示例:

aov(Recall ~ Valence + Error(Subject/Valence), data.ex3)

在这里,受试者会看到不同价的单词(三个级别的因素),并测量他们的回忆时间。每个主题都呈现所有三个价级的单词。我在这个设计中看不到任何嵌套的东西(根据这里的好答案,它看起来是交叉的),所以我会天真地认为在这种情况下Error(Subject)或者(1 | Subject)应该是适当的随机术语。Subject/Valence嵌套”(?)令人困惑。

请注意,我确实理解这Valence是一个主题内因素。但我认为这不是科目内的“嵌套”因素(因为所有科目都经历了所有三个级别Valence)。


更新。我正在探索有关在 R 中编码重复测量 ANOVA 的 CV 问题。

  • 这里以下用于固定的被试内/重复测量 A 和随机subject

    summary(aov(Y ~ A + Error(subject/A), data = d))
    anova(lme(Y ~ A, random = ~1|subject, data = d))
    
  • 这里有两个固定的受试者内/重复测量效果 A 和 B:

    summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))
    lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d) 
    
  • 这里是三个主体内效果 A、B 和 C:

    summary(aov(Y ~ A*B*C + Error(subject/(A*B*C)), data=d))
    lmer(Y ~ A*B*C + (1|subject) + (0+A|subject) + (0+B|subject) + (0+C|subject) + (0+A:B|subject) + (0+A:C|subject) + (0+B:C|subject), data = d)
    

我的问题:

  1. 为什么Error(subject/A)而不是Error(subject)
  2. (1|subject)还是(1|subject)+(1|A:subject)或只是(1|A:subject)
  3. 是不是(1|subject) + (1|A:subject)(1|subject) + (0+A|subject)为什么不简单(A|subject)

到目前为止,我已经看到一些线程声称其中一些东西是等价的(例如,第一个:声称它们相同对 SO 的相反声明;第三个:声称它们是相同的)。他们是吗?

2个回答

在混合模型中,将因素视为固定或随机的,特别是与它们是否交叉、部分交叉或嵌套相结合会导致很多混乱。此外,在 anova/设计的实验世界和混合/多级模型世界中嵌套的含义似乎存在术语差异。

我不自称知道所有答案,而且我的答案不会完整(并且可能会产生更多问题),但我会尝试在这里解决一些问题:

将固定效果嵌套在随机效果中是否有意义,或者如何在 R(aov 和 lmer)中对重复测量进行编码?

(问题标题)

不,我不相信这是有道理的。当我们处理重复测量时,通常重复测量的内容是随机的,我们称之为Subject,并且lme4我们希望在随机部分的Subject右侧包含一个或多个|公式。如果我们有其他随机效应,那么这些效应要么是交叉的,要么是部分交叉的,要么是嵌套的——我对这个问题的回答解决了这个问题。

这些 anova 型设计实验的问题似乎是如何处理通常被认为是固定的因素,在重复测量的情况下,OP 正文中的问题说明了这一点:

为什么是错误(主题/A)而不是错误(主题)?

我通常不使用aov(),所以我可能会遗漏一些东西,但对我来说,在链接问题Error(subject/A)的情况下这是非常误导的实际上导致完全相同的结果。Error(subject)

是 (1|subject) 还是 (1|subject)+(1|A:subject) 或只是 (1|A:subject)?

这与这个问题有关。在这种情况下,以下所有随机效应公式都会导致完全相同的结果:

(1|subject)
(1|A:subject)
(1|subject) + (1|A:subject)
(1|subject) + (1|A:subject) + (1|B:subject)

但是,这是因为问题中的模拟数据集没有任何变化,它只是用Y = rnorm(48). 如果我们取一个真实的数据集,例如 中的cake数据集lme4,我们会发现通常情况并非如此。从文档中,这里是实验设置:

使用三种不同配方制作并在六种不同温度下烘烤的巧克力蛋糕的破损角度数据。这是一个裂区设计,配方是整个单元,不同的温度应用于子单元(在重复中)。实验说明表明,重复编号代表时间顺序。

一个包含以下 5 个变量的 270 个观测值的数据框。

replicate级别为 1 到 15 的因子

recipe具有 A、B 和 C 级的因子

temperature水平为 175 < 185 < 195 < 205 < 215 < 225 的有序因子

temp烘烤温度的数值(华氏度)。

angle一个数值向量,给出蛋糕破裂的角度。

因此,我们在 内重复测量replicate,我们也对固定因子recipe和感兴趣temperature(我们可以忽略temp,因为这只是 的不同编码temperature),我们可以使用 来可视化情况xtabs

> xtabs(~recipe+replicate,data=cake)

     replicate
recipe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
     A 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     B 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     C 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6

如果recipe是随机效应,我们会说这些是交叉随机效应。绝不recipe A属于replicate 1或任何其他复制品。

> xtabs(~temp+replicate,data=cake)

     replicate
temp  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  175 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  185 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  195 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  205 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  215 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  225 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3

同样对于temp

所以我们可能适合的第一个模型是:

> lmm1 <-  lmer(angle ~ recipe * temperature + (1|replicate), cake, REML= FALSE)

这将把每一个都replicate视为随机变化的唯一来源(当然除了残差)。但食谱之间可能存在随机差异。因此,我们可能很想将recipe另一个(交叉)随机效应包括在内,但这是不明智的,因为我们只有 3 个水平,recipe所以我们不能指望模型很好地估计方差分量。因此,我们可以将replicate:recipe其用作分组变量,这将使我们能够将复制和配方的每个组合视为单独的分组因素。因此,对于上述模型,我们将有 15 个随机截距的水平,replicate我们现在将有 45 个随机截距,用于每个单独的组合:

lmm3 <-  lmer(angle ~ recipe * temperature + (1|replicate:recipe) , cake, REML= FALSE)

请注意,我们现在(非常轻微)不同的结果表明由于配方存在一些随机变化,但不是很大。

我们也可以对temperature.

现在,回到你的问题,你也问

为什么(1|subject) + (1|A:subject)(1|subject) + (0+A|subject),甚至干脆(A|subject)

我不完全确定这个(使用随机斜率)来自哪里 - 它似乎没有出现在 2 个链接的问题中 - 但我的问题(1|subject) + (1|A:subject)是这(1|subject/A)A嵌套subject在turn 意味着(对我来说)每个级别都A发生在 1 中,并且只有 1 级别subject显然不是这里的情况。

在我进一步考虑之后,我可能会添加和/或编辑这个答案,但我想把我最初的想法记下来。

哎呀。警告评论者发现我的帖子充满了废话。我混淆了嵌套设计和重复测量设计。

站点对嵌套和重复测量设计之间的差异进行了有用的细分。有趣的是,作者显示了固定内固定、固定内随机和随机内随机的预期均方——但随机内不固定。很难想象这意味着什么——如果 A 级的因素是随机选择的,那么现在随机性决定了 B 级因素的选择。如果从学校董事会中随机选择 5 所学校,然后有 3 名教师是从每所学校(嵌套在学校中的教师)中选择,“教师”因素的水平现在是凭借学校的随机选择从学校董事会中随机选择的教师。我无法“修复”实验中的老师。