Как сузить до конкретных контрастов с lsmeans - PullRequest
1 голос
/ 03 октября 2019

Я хотел бы использовать контраст () с объектом lsmeans для выполнения некоторых запланированных сравнений, но я не могу найти метод для выполнения желаемых сравнений. Я хочу сравнить, влияет ли один фактор на один из двух уровней фактора. Например, ниже я хотел бы сравнить, отличается ли A, C от B, C и отличается ли A, D от B, D. Я не хочу сравнивать, отличается ли A, C от B, D или от A, D и т. Д.

fac_one <- c(rep("A", 200), rep ("B", 200))
fac_two <- rep(c("C", "D"), 200)

dats <- data.frame(fac_one= c(rep("A", 200), rep ("B", 200)),
                   fac_two= rep(c("C", "D"), 200))

dats$y <- NA

dats$y[dats$fac_one=="A" & dats$fac_two=="C"] <- 
  rnorm(100, mean=0.9, sd=1)
dats$y[dats$fac_one=="B" & dats$fac_two=="C"] <- 
  rnorm(100, mean=0.9, sd=1)

dats$y[dats$fac_one=="A" & dats$fac_two=="D"] <- 
  rnorm(100, mean=0.6, sd=1)
dats$y[dats$fac_one=="B" & dats$fac_two=="D"] <- 
  rnorm(100, mean=1.4, sd=1)

mod <- lm(y ~ fac_one*fac_two, data = dats)
Anova(mod)

lsmns <- lsmeans(mod, ~fac_one*fac_two)
#currently does many contrasts that I do not want to do
contrast(lsmns)

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Вы можете использовать | вместо *, чтобы сказать emmeans, чтобы разделить их на группы на основе этого фактора. Затем вы можете использовать pairs для получения парных сравнений в каждой группе. Также обратите внимание, что и пакет, и функция были переименованы в последних версиях на emmeans с lsmeans, хотя эта функция также есть в более старых версиях.

> library(emmeans)
> lsmns <- emmeans(mod, ~fac_one|fac_two)
> pairs(lsmns)
fac_two = C:
 contrast estimate    SE  df t.ratio p.value
 A - B      -0.044 0.142 396 -0.309  0.7574 

fac_two = D:
 contrast estimate    SE  df t.ratio p.value
 A - B      -0.974 0.142 396 -6.848  <.0001 

PS. Хороший воспроизводимый пример. :)

1 голос
/ 04 октября 2019
contrast(lsmns, “pairwise”, by = “fac_two”)

В документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...