首页 文章

如何将Afex或汽车ANOVA模型转换为lmer?观察到的变量

提问于
浏览
3

afex 包中,我们可以找到ANOVA分析的这个例子:

data(obk.long, package = "afex")
# estimate mixed ANOVA on the full design:
# can be written in any of these ways: 

aov_car(value ~ treatment * gender + Error(id/(phase*hour)), data = obk.long,
        observed = "gender")

aov_4(value ~ treatment * gender + (phase*hour|id), data = obk.long,
        observed = "gender")

aov_ez("id", "value", obk.long, between = c("treatment", "gender"), 
       within = c("phase", "hour"), observed = "gender")

我的问题是,如何在 lme4 中编写相同的模型?特别是,我不知道如何包含"observed"术语?

如果我只是写

lmer(value ~ treatment * gender + (phase*hour|id), data = obk.long,
     observed = "gender")

我收到一个错误,告知被观察不是一个有效的选项 .

此外,如果我只是删除观察到的选项 lmer 产生错误:

错误:观察次数(= 240)<=期限的随机效应数(= 240)(阶段*小时| id);随机效应参数和残差方差(或尺度参数)可能无法识别 .

在lmer语法中,我指定“between”或“within”变量?据我所知,你只需在左侧写入因变量,在右侧写入所有其他变量,并将错误项写为(1 | id) .

包“car”使用idata作为主题内变量 .

2 回答

  • 3

    我可能不太了解经典的ANOVA理论来完全回答这个问题,但我会采取一个裂缝 . 首先,有几点:

    • observed 参数仅与效果大小的计算相关 .

    观察:'特征'载体,表明与实验操作相比,观察到(即测量的)哪个变量 . 报告的默认效果大小(广义eta平方)需要正确指定所谓的[sic](与操作相反)变量 .

    ...所以我认为你可以放心 .

    • 如果要覆盖可以使用的错误
    control=lmerControl(check.nobs.vs.nRE="ignore")
    

    ......但这可能不是正确的前进方向 .

    think 但不确定这是正确的方法:

    m1 <- lmer(value ~ treatment * gender + (1|id/phase:hour), data = obk.long,
        control=lmerControl(check.nobs.vs.nRE="ignore",
                                check.nobs.vs.nlev="ignore"),
        contrasts=list(treatment=contr.sum,gender=contr.sum))
    

    这指定 phasehour 的交互在 id 内变化 . 残差方差和(id内的小时)方差混淆(这就是为什么我们需要覆盖 lmerControl() 规范),所以不要相信那些特定的方差估计 . 但是,治疗和性别的主要影响应该处理相同 . 如果加载 lmerTest 而不是 lmer 并运行 summary(m1)anova(m1) ,它会为 afex 计算的固定(性别和治疗)效果提供相同的自由度(10) .

    lme 给出了可比较的答案,但需要预先构建逐个小时的交互:

    library(nlme)
    obk.long$ph <- with(obk.long,interaction(phase,hour))
    m2 <- lme(value ~ treatment * gender,
                 random=~1|id/ph, data = obk.long,
        contrasts=list(treatment=contr.sum,gender=contr.sum))
    anova(m2,type="marginal")
    

    我不知道如何重建 afex 的随机效应测试 .

  • 2

    正如Ben Bolker正确地说的那样,只需离开 observed 即可 .

    此外,我不建议做你想做的事 . 在每个参与者的每个设计单元格内使用混合模型进行数据集而不进行复制有点值得怀疑,因为如何指定随机效果结构并不是很清楚 . 重要的是,Barr等人 . 正如你所意识到的那样,"keep it maximal"的格言不起作用 . 问题是模型过度参数化(因此来自 lmer 的错误) .

    我推荐使用ANOVA . 关于这个问题的更多讨论可以在Ben和我discussed this more thoroughly的交叉验证线程中找到 .

相关问题