ls означает контраст для члена взаимодействия

Я пытаюсь использовать lsmeans и его контраст для F-теста взаимодействия. По сути, я хотел бы воспроизвести то, что делает Stata с помощью команды contrast. Я хотел бы сделать это по двум причинам:

  1. в регрессионной модели, которая взаимодействует между факторными переменными;

  2. в ANOVA, чтобы помочь разложить трехстороннее взаимодействие.

По этому вопросу я спрошу о трехстороннем взаимодействии.

library(haven)
threeway <- read_spss("https://stats.idre.ucla.edu/wp-content/uploads/2016/02/threeway.sav")
threeway$ID <- row.names(threeway)

library(afex)
three_fit <- aov_ez("ID", "y", data = threeway, between = c("a", "b", "c"))
three_fit

> three_fit
Anova Table (Type 3 tests)

Response: y
  Effect    df  MSE          F ges p.value
1      a 1, 12 1.33 112.50 *** .90  <.0001
2      b 1, 12 1.33       0.50 .04     .49
3      c 2, 12 1.33  47.84 *** .89  <.0001
4    a:b 1, 12 1.33 120.13 *** .91  <.0001
5    a:c 2, 12 1.33     6.84 * .53     .01
6    b:c 2, 12 1.33    8.47 ** .59    .005
7  a:b:c 2, 12 1.33    6.97 ** .54    .010
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Трехстороннее взаимодействие имеет большое значение. Теперь из страница UCLA в Stata, Stata может использовать код:

contrast b#c@a

Это даст F-тест для взаимодействия b*c на уровнях a.

Я пытаюсь сделать то же самое с lsmeans в R. Но у меня ничего не получается. Вот что я пробовал:

library(lsmeans)
lsm <- lsmeans(three_fit, c("b", "c"), by="a")
test(contrast(lsm, "consec"), joint=TRUE)

Это дает мне F-тест, но он неверен (или, по крайней мере, не тот, который мне нужен). Будем признательны за любую помощь в воспроизведении результатов Stata. Я бы очень хотел остаться в пределах lsmeans, чтобы сделать это, но если что-то еще сработает, я возьму это.


person Michael    schedule 02.09.2017    source источник


Ответы (1)


Я думаю, что вы ищете

test(contrast(lsm, interaction = "consec"), joint=TRUE)

То есть вы хотите проверить контрасты взаимодействия, а не сравнения средств. Вы можете увидеть, что вы тестируете (я рекомендую это!), запустив этот вызов contrast, не заключая его в test. Попробуйте с ключевым словом interaction и без него.

person Russ Lenth    schedule 02.09.2017
comment
Спасибо за предложение, но это дает мне только один результат F-теста (как ни странно, с 2, 12 df). Я ищу один F-тест взаимодействия (каждый с 2,12 df) для каждого уровня a. - person Michael; 06.09.2017
comment
Вы пытались добавить by="a" к вызову test? - person Russ Lenth; 06.09.2017