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
相关产品推荐
相关产品推荐

