2017-09-02 82 views
1

我正在嘗試使用lsmeans及其對交互作用的F測試的對比。基本上,我想複製Stata用它的contrast命令做的事情。我想有兩個原因這樣做:交互作用項的信息對比

  1. 具有因子變量之間的相互作用迴歸模型中

    ;

  2. 內的方差分析,以幫助分解三方互動。

對於這個問題,我會問一下關於三向交互的問題。

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#[email protected] 

這將在的水平產生F-檢驗爲B * C的相互作用。

我想在R中做lsmeans。但是,我只是無法得到它。以下是我已經試過:

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

這讓我的F-測試,但它是不正確的(或至少它不是一個我想要的)。我們將不勝感激複製Stata結果的任何幫助。我真的很想在lsmeans之內做到這一點,但如果其他工作,我會採取。

回答

1

我想你要找的是什麼

test(contrast(lsm, interaction = "consec"), joint=TRUE) 
也就是說,你要測試的交互手段之間的對比,而不是比較

。通過運行contrast調用,您可以看到您正在測試的是什麼(我推薦!),而不用將其包裝在test中。嘗試使用和不使用interaction關鍵字。

+0

感謝您的建議 - 但這隻能讓我得到一個F檢測結果(奇怪的是2,12ff)。我正在尋找每個級別爲「a」的交互F-測試(每個都有2,12df)。 – Michael

+0

您是否嘗試在'test'調用中添加'by =「a」'? – rvl