估算lsmeans的差异

时间:2017-10-25 03:40:24

标签: r regression lsmeans

如何使用lsmeans估算两个成对对比中的差异?例如 - 想象一个连续的dv和两个因子预测器

library(lsmeans)
library(tidyverse)

dat <- data.frame(
  y = runif(30),
  x1 = 1:2 %>% 
    factor %>% 
    sample(30, T),
  x2 = letters[1:3] %>%
    factor %>% 
    sample(30, T)
  )

lm1 <- lm(y ~ x1 * x2, data = dat)

这次调用让我得到了x1 <{1}} x2的影响估算值

lsmeans(lm1, ~ x1 | x2) %>% 
  pairs 

返回

x2 = a:
 contrast     estimate        SE df t.ratio p.value
 1 - 2    -0.150437681 0.2688707 24  -0.560  0.5810

x2 = b:
 contrast     estimate        SE df t.ratio p.value
 1 - 2    -0.048950972 0.1928172 24  -0.254  0.8018

x2 = c:
 contrast     estimate        SE df t.ratio p.value
 1 - 2    -0.006819473 0.2125610 24  -0.032  0.9747

这很好,但我现在想要这些对比的差异,看看这些1 - 2差异是否因x2级别而异。

2 个答案:

答案 0 :(得分:2)

使用

lsm = lsmeans(lm1, ~ x1 * x2)
contrast(lsm, interaction = “pairwise”)

答案 1 :(得分:1)

正如我理解你的问题,你可以使用这个解决方案:

lm1 <- lm(y ~ x1 * x2, data = dat)
means.int <- lsmeans(lm1, ~x1 + x2)
dd <- contrast(means.int, list(`a--b` = c(1,-1,-1,1,0,0), 
                               `a--c`=c(1,-1,0,0,-1,1),
                               `b--c` = c(0,0,1,-1,-1,1)), 
               adjust = 'mvt')