如何提取函数 multcomp::glht 用于计算 R 中均值的多重比较的值(最小差值)?
How to extract the value (minimum difference) the function multcomp::glht is using to calculate the multiple comparisons of means in R?
我有这个例子,我想对治疗进行多重比较。
这是数据:
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
给了我需要的输出。
我正在寻找最小差异的值来调用差异并显示不同的字母。我假设该值应该在此对象中:pairs.comp.glht
或此处 pairs.comp.glht.cld
,但我无法提取该值。
这个问题假设有一个值可以满足所述目的。如果有这样的值,可以通过
找到
confint(pairs(model.fit.emmeans))
每个置信区间的 half-width 是该比较的临界值。如果所有这些 half-width 都相等,那就是您的答案。 (如果 df 都相等且 SE 都相等,它们将相等。)
但是对于混合模型,或者数据不平衡等情况,经常会出现比较的临界值都不一样的情况。
您可以通过
获得更详细的结果摘要
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)
请注意,标准误差会有所不同,因此最小差异也会有所不同。对于第一次比较,要获得 .05 的 two-tailed p-value,您需要相差 1.96 * 3.3806 = +/-6.625976.
我有这个例子,我想对治疗进行多重比较。 这是数据:
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
给了我需要的输出。
我正在寻找最小差异的值来调用差异并显示不同的字母。我假设该值应该在此对象中:pairs.comp.glht
或此处 pairs.comp.glht.cld
,但我无法提取该值。
这个问题假设有一个值可以满足所述目的。如果有这样的值,可以通过
找到confint(pairs(model.fit.emmeans))
每个置信区间的 half-width 是该比较的临界值。如果所有这些 half-width 都相等,那就是您的答案。 (如果 df 都相等且 SE 都相等,它们将相等。)
但是对于混合模型,或者数据不平衡等情况,经常会出现比较的临界值都不一样的情况。
您可以通过
获得更详细的结果摘要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)
请注意,标准误差会有所不同,因此最小差异也会有所不同。对于第一次比较,要获得 .05 的 two-tailed p-value,您需要相差 1.96 * 3.3806 = +/-6.625976.