lsmeans对比交互术语

时间:2017-09-02 14:26:40

标签: r lsmeans

我尝试使用lsmeans及其对比进行互动的F检验。基本上,我想复制Stata使用contrast命令执行的操作。我想这样做有两个原因:

  1. 在具有因子变量之间相互作用的回归模型中;

  2. 在ANOVA中帮助分解三向互动。

  3. 对于这个问题,我会询问三方互动。

    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 page on Stata开始,Stata可以使用代码:

    contrast b#c@a
    

    这将在a的水平上产生b * c相互作用的F检验。

    我试图用R中的lsmeans做同样的事情。但是,我无法得到它。以下是我尝试过的内容:

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

    这让我得到了一个F测试,但它不正确(或者至少它不是我想要的那个)。任何帮助复制Stata结果将不胜感激。我真的想留在lsmeans内做这件事,但如果其他事情有效,我会接受它。

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是

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

也就是说,您希望测试交互对比,而不是手段之间的比较。您可以通过运行contrast调用而不将其包含在test中来查看您正在测试的内容(我建议!)。尝试使用和不使用interaction关键字。