首页 > 解决方案 > 嵌套因子中的parwise比较问题

问题描述

这是一个数据集,周嵌套在周期中,当我想查看饮食和周之间的成对比较时,这会出现问题。错误“尝试从'by'中取出嵌套因子”是什么意思。意思是?

form <- as.formula(paste(colnames(df)[8],'~ Diet  + period +week*Diet +(1|id)')) #get data for interactions
    dflmer <- lmer(form, data=df)
    a <- Anova(dflmer, type=3) 
    library(emmeans)
    emm <- emmeans(dflmer, pairwise ~ Diet | week) 

    NOTE: A nesting structure was detected in the fitted model:
  week %in% period
Note: Grouping factor(s) for 'week' have been added to the 'by' list.
Error in .nested_contrast(rgobj = object, method = method, by = by, adjust = adjust,  : 
                            There are no factor levels left to contrast. Try taking nested factors out of 'by'.

标签: r

解决方案


由于周嵌套在周期中,因此您不能在没有周期条件的情况下以周为条件。尝试

emmeans(dflmer , pairwise ~ Diet | period:week)

emmeans的最新版本 1.46修复了这个问题,因为旧版本没有考虑嵌套在by变量中的可能性。

附录

我想我记错了一些细节。生成此错误消息的代码在版本 <= 1.4.5 中放错了位置。我认为您可能需要安装 1.4.6 版才能使其正常工作。查看相关问题报告

附录 2

我构建了一个类似的例子,我仍然从这个模型中得到错误。问题是week嵌套在 中period,并且模型已经Diet与 交叉week但没有与交叉period,这没有意义。在我固定效应项拟合模型后,我能够得到结果Diet*(period + week)


推荐阅读