1

我有这个例子,我想对治疗进行多重比较。这是数据:

data.1 <-read.csv(text = "
location,treat,response
loc1,T1,120
loc1,T2,60
loc1,T3,59
loc1,T4,10
loc2,T1,129
loc2,T2,55
loc2,T3,59
loc2,T4,8
loc3,T1,134
loc3,T2,60
loc3,T3,58
")

这就是我所做的:

library(lme4)
library(lmerTest)
library(emmeans)
library(multcomp)

model.fit <- lmer(response ~ treat + (1|location), data = data.1)

model.fit.emmeans <- emmeans(model.fit, ~ treat, 
                             options = list(estName = "response"))

pairs.comp.glht<-glht(model.fit, linfct=mcp(treat="Tukey"))

pairs.comp.glht.cld <-cld(pairs.comp.glht)

运行它pairs.comp.glht.cld给了我我需要的输出。

在此处输入图像描述

我正在寻找最小差异的值来调用差异并显示不同的字母。我假设该值应该在 this object:pairs.comp.glht或 herepairs.comp.glht.cld中,但我无法提取该值。

4

2 回答 2

2

这个问题假设有一个单一的价值可以服务于既定的目的。如果有这样的值,可以通过

confint(pairs(model.fit.emmeans))

每个置信区间的半宽度是该比较的临界值。如果所有这些半宽度相等,那就是你的答案。(如果 df 都相等且 SE 都相等,它们将相等。)

但是对于混合模型或不平衡数据等,通常情况下比较都有不同的临界值。

于 2022-01-26T23:14:27.410 回答
2

您可以通过以下方式获得更详细的结果摘要

summary(pairs.comp.glht)
# 
#    Simultaneous Tests for General Linear Hypotheses
# 
# Multiple Comparisons of Means: Tukey Contrasts
# 
# 
# Fit: lmer(formula = response ~ treat + (1 | location), data = data.1)
# 
# Linear Hypotheses:
#               Estimate Std. Error z value Pr(>|z|)    
# T2 - T1 == 0  -69.3333     3.3806 -20.509   <1e-08 ***
# T3 - T1 == 0  -69.0000     3.3806 -20.410   <1e-08 ***
# T4 - T1 == 0 -118.6667     3.7796 -31.396   <1e-08 ***
# T3 - T2 == 0    0.3333     3.3806   0.099        1    
# T4 - T2 == 0  -49.3333     3.7796 -13.052   <1e-08 ***
# T4 - T3 == 0  -49.6667     3.7796 -13.141   <1e-08 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# (Adjusted p values reported -- single-step method)

请注意,标准误差会有所不同,因此最小差异也会有所不同。对于第一个比较,要获得 0.05 的双尾 p 值,您需要 1.96 * 3.3806 = +/-6.625976 的差异。

于 2022-01-26T23:17:23.027 回答