You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

emmeans中trt.vs.ctrl是否为双侧检验?如何指定检验方向?

关于glm.nb模型Dunnett检验方向及备择假设指定的问题

问题背景

研究数据包含7种处理,每种处理对应4个浓度水平(含0浓度溶剂对照组),响应变量为节肢动物特定行为的观测次数。经模型筛选,最终选择带随机变量date的glm.nb模型拟合数据,随后使用emmeans进行Dunnett事后比较,执行代码如下:

glmer.nb.fooreturn %>% emmeans(~ conc|odour) -> emm_int
contrast(emm_int, "trt.vs.ctrl", ref = "0", type = "response", adjust="D")

审稿人询问该Dunnett检验为双侧还是单侧检验,现需明确检验方向的指定方法,或可指定备择假设的其他事后检验方案。

解答

1. emmeans中Dunnett检验的方向指定

emmeans的contrast()函数中,"trt.vs.ctrl"类型的Dunnett检验默认是双侧检验。若需指定单侧检验,可通过side参数实现:

  • side = "greater":指定右侧检验(备择假设为处理组响应值大于对照组)
  • side = "less":指定左侧检验(备择假设为处理组响应值小于对照组)

修改后的代码示例:

# 右侧Dunnett检验
contrast(emm_int, "trt.vs.ctrl", ref = "0", type = "response", adjust="D", side = "greater")

2. 其他可指定备择假设的事后检验方法

自定义对比矩阵

若需要更灵活的备择假设设定,可直接构建自定义对比矩阵,通过alternative参数指定检验方向,同时搭配合适的多重比较调整方法:

# 构建自定义对比:检验浓度1、2、3分别大于对照组0
custom_contr <- list(
  conc1_vs_ctrl = c(-1, 1, 0, 0),
  conc2_vs_ctrl = c(-1, 0, 1, 0),
  conc3_vs_ctrl = c(-1, 0, 0, 1)
)
# 指定右侧备择假设,采用holm调整
contrast(emm_int, method = custom_contr, type = "response", alternative = "greater", adjust="holm")

使用multcomp包直接实现

emmeans的对比功能依赖multcomp包,也可直接调用multcomp::glht()函数,通过alternative参数明确指定备择假设:

library(multcomp)
# 指定右侧备择假设,针对各浓度与对照组的对比
glht_fit <- glht(glmer.nb.fooreturn, 
                 linfct = emmeans(~ conc|odour, at = list(conc = c("0","1","2","3"))), 
                 alternative = "greater")
# 输出调整后的检验结果
summary(glht_fit, test = adjusted("holm"))

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:25:19