在R

时间:2016-06-24 14:11:25

标签: r lsmeans

我有一个分析我想表现,我已经计划出对比(而不是比较!)我想在治疗组之间进行。治疗组变量具有(k =)4个水平。我计划总共进行3次不同的比较,因此,如果我理解正确的话 - 我不需要对比较为k-1时计算的p值进行任何调整。

我想使用R中的multcomplsmeans包来执行此操作。我的问题是:有没有人知道是否可以进行这种计划的比较而不对置信区间(和p值)进行任何调整?据我所看到的小插曲和我见过的例子,summary.glht()函数将调整作为默认值,我不清楚哪个选项会撤消这个。

如果某人需要可重复的示例,他们可以使用我在http://www.ats.ucla.edu/stat/r/faq/testing_contrasts.htm上找到的这个示例:

    library(multcomp)

    hsb <- read.csv("http://www.ats.ucla.edu/stat/data/hsb2.csv")

    m1 <- lm(read ~ socst + factor(ses) * factor(female), data = hsb)
    summary(m1)

    K <- matrix(c(0, 0, 1, -1, 0, 0, 0), 1)
    t <- glht(m1, linfct = K)
    summary(t)

1 个答案:

答案 0 :(得分:1)

据我看到你的例子,你的问题有点奇怪。至少IMO,如果你不需要调整,你不需要使用multcomp包(但在某些情况下,它可以节省我们一些时间)。

library(multcomp)
hsb <- read.csv("http://www.ats.ucla.edu/stat/data/hsb2.csv")
hsb$ses <- as.factor(hsb$ses)

m3 <- lm(read ~ socst + ses, data = hsb)
l3 <- glht(m3, linfct = mcp(ses = "Tukey"))

# mcp(~) doesn't run with some type of model. If so, you'll give the matrix directly.
# k3 <- matrix(c(0, 0, 1, 0,
#                0, 0, 0, 1,
#                0, 0, -1, 1), byrow = T, ncol = 4)
# rownames(k3) <- c("2-1", "3-1", "3-2")
# l3 <- glht(m3, linfct = k1)

summary(l3, test=adjusted("none"))    # this is the result without adjustment
#            Estimate Std. Error t value Pr(>|t|)
# 2 - 1 == 0   0.6531     1.4562   0.448    0.654
# 3 - 1 == 0   2.7034     1.6697   1.619    0.107
# 3 - 2 == 0   2.0503     1.3685   1.498    0.136

hsb$ses <- relevel(hsb$ses, ref="2")  # change of the order of levels
m3.2 <- lm(read ~ socst + ses, data = hsb)
summary(m3)     # "Without adjustment" means it's equivalent to original model's statistics.
#             Estimate Std. Error t value Pr(>|t|)
#  :
# ses2         0.65309    1.45624   0.448    0.654    
# ses3         2.70342    1.66973   1.619    0.107 

summary(m3.2)
#             Estimate Std. Error t value Pr(>|t|)
#  :
# ses3         2.05033    1.36846   1.498    0.136

# When argument is lmer.obj, summary(~, adjusted("none")) returns p.value by using z value with N(0, 1).