Stata 在repeated ANOVA方面,文件不多,最近因為一個計畫需要用到這種方析方式,花了不少時間學習。用完之後趕快寫下一點心得,以免以後健忘。
Stata 的repeated ANOVA必須將資料將寬格式轉換成長格式,如果不知道這些名詞,請參考這篇 Stata: reshape 將資料從寬格式改成長格式。
下面的code有點複雜,請慢慢看。
anova dtest group / uid|group times times#group, repeated(times)
最前面的anova,是分析的指令,後面接的dtest,就是資料變成長格式之後,學生在不同時間的測試分數,所以就是要看不同時間測試分數的變化。
group的不同的組,這是一個categorical variable,不同的數值代表不同的實驗組別。
如果作一般的anova,就是這部分。
接下來會看到/,在stata 的說明文件裡是這麼說的:
The / symbol is allowed after a term and indicates that the following term is the error term for the preceding terms.
所以/後面放的是error term,在這例子裡,error term就是學生的id乘以組別。
你會發現前半部是uid,中間有一個| (這不是I,而是一直線的符號),這符號代表的是nesting:
The | symbol (indicating nesting) may be used in place of the # symbol (indicating interaction).
在這例子裡,subject是nested在組別裡面的。
在這之後,times是within subject的變數,而後面的times#group是這兩者的interaction (#代表interaction)。
在下了下面指令之後,出現的結果如下圖:
group3 不顯著,代表組別之間沒有差異,uid|group3沒有顯著水準測試,因為是error term。
times顯著,代表測試在不同的時間呈顯著差異。
times#group3為顯著,代表時間與組別之間有交互作用,意思是組別之間在不同時間的成長並不一定相同。
接下來我們要繼續看這交互作用,這用下面的code
contrast times@group3, effect
contrast通常是在跑完基本分析之後作的estimation,這裡測試的是simple effect.
a@b 表示用contrast的指令,測試a在每一個b裡面的作用。
由於每一組都有時間,我們測試的是時間在每一組裡面的作用,所以時間放前面,@後面放組別。
下面是跑出來結果的上半部分:
這圖一開始先測試的是組別之間的差異,控制組來說,時間並沒有影響,但對其它組來說,時間是有影響的。
後半部則是組內之間,時間不同的比較,2 vs base 就是第二次測量與第一次測量之間的差異,括號後面則是組別。
如果你想要具體比較某一組,在不同時間的變化,那可以用如下指令:
margin times, at(group3=1) pwcompare(effects) noestimcheck
結果如下圖。如果你仔細看,contrast 2 vs 1 的結果,跟上圖 (2 vs base) control 的結果是一樣的,3 vs 1 與上圖 (3 vs base) control 是一樣的。
另外一種比較方式是固定時間,然後比較組間差異,code與上面相似,但 at的部分不同:
margin group3, at(times=1) pwcompare(effects) noestimcheck
這結果就不截圖了,讓大家自己練習。
如果要畫圖的話,下面的相關文章有code,就讓大家自己學習。
相關文章
Why do I get an error message when I try to run a repeated-measures ANOVA? by Stata
Repeated Measures Analysis with Stata by IDRE at UCLA