如何在emmeans中获取对比的两两对比(R语言实例)
解决emmeans交互项两两对比缺失的问题
要获取三个group间,noAnxiety与anxiety事件发生率变化量的完整两两对比,你可以通过以下两种方法实现:
方法一:分步计算差值再做对比
先提取每个group内anxiety两水平的边际均值差,再对这些差值进行全量两两对比:
# 生成各group下anxiety的边际均值(假设model是你的glm模型) emAnx <- emmeans(model, ~ anxiety | group) # 计算每个group内noAnxiety - anxiety的差值(reverse=TRUE调整差值方向) group_anx_diff <- pairs(emAnx, reverse = TRUE) # 对三个组的差值做完整两两对比 full_pairwise <- pairs(group_anx_diff) print(full_pairwise)
方法二:直接指定对比类型一步实现
在contrast()函数中,将group的对比类型从"consec"(连续相邻对比)改为"pairwise"(全量两两对比),anxiety因是两水平,用"consec"或"pairwise"效果一致:
# 生成group*anxiety的交叉边际均值 emAnx <- emmeans(model, ~ group * anxiety) # 指定group用pairwise对比,anxiety用连续/两两对比,得到完整交互项对比 full_contrast <- contrast(emAnx, interaction = c("pairwise", "consec"), by = NULL) print(full_contrast)
原代码问题说明
你之前用interaction = c("consec", "consec")时,group维度的"consec"只会生成相邻组的差异(g2-g1、g3-g2),而"pairwise"会生成所有两两组合(g2-g1、g3-g1、g3-g2),正好覆盖你需要的所有对比场景。
内容的提问来源于stack exchange,提问作者llewmills
相关产品推荐
相关产品推荐

