2012-04-07 69 views
0

我運行下面幾行:如何在SAS中使用單向RM ANOVA後進行Tukey's HSD post-hoc測試?

DATA abc; 
INPUT AA BB CC DD EE; 
CARDS; 
... 
; 
RUN; 

PROC GLM DATA = abc; 
MODEL AA BB CC DD EE =/NOUNI; 
REPEATED conditions 5 (1 2 3 4 5)/PRINTE; 
MEANS/TUKEY ALPHA = 0.05; 
RUN; 

MEANS語句類變量作品(「ERROR:只允許在此效果類的變量。」 SAS說)。反過來,我只定義了答案(試驗):MODEL AA BB CC DD EE =/NOUNI;。有誰能夠幫助我?

P.S.
(基本上我的設計是在CrossValidated解釋。)

+1

你是否缺少'class'語句? – itzy 2012-04-07 17:47:02

+0

@itzy不......我沒有'class'變量......我不知道怎麼解釋,但是'AA BB CC DD EE'是*一個因素的* 5水平*(試驗) *(條件)。我該怎麼辦? – stan 2012-04-07 19:13:56

+0

我對這些模型瞭解不多,但是您可能必須在模型語句之前使用一個聲明「class AA BB CC DD EE」的語句來識別具有這種級別的變量。 – itzy 2012-04-08 00:46:32

回答

1

我相當肯定,根據我的經驗,SAS,你想要的東西也不是很容易在SAS讓 - 雖然我相信這是可能。如果需要,手動確認確實很容易。

從你給的鏈接,這是我讀入一個SAS程序考慮數據...

DATA raw_lph; 
    INPUT idnum cntrl a b c d; 
    CARDS; 
    20 5.1 12.42 10.1 9.58 8.54 
    21 4.07 9.96 14.12 10.79 12.24 
    22 3.94 4.92 13.04 15.96 9.37 
    25 0.6 3.24 8.94 0.61 3.62 
    26 1.72 13.96 2.48 3.44 3.12 
    27 0.53 3.36 1.4 4 0.81 
    28 0.97 3.88 2.33 3.77 3.31 
    31 0.15 4.05 1.45 2.44 1.47 
    32 0.58 1.92 2.47 2.33 4.92 
    33 1.02 6.03 4.4 4.8 3.88 
; 
RUN; 

做就可以了更爲傳統的單因素方差分析,你需要它移調,我做到了。現在

DATA transposed_lph; 
    SET raw_lph; 
    RETAIN idnum; 
    ARRAY varnames[5] $ _TEMPORARY_ ('cntrl' 'a' 'b' 'c' 'd'); 
    ARRAY steps[5] cntrl--d; 
    DO i=1 TO 5; 
     well=varnames[i]; 
     pctlph=steps[i]; 
     OUTPUT; 
    END; 
    KEEP idnum well pctlph; 
RUN; 

,有以下兩大塊,一是與傳統的方差分析的格式,一個設置爲使用重複的語句。

PROC GLM DATA=transposed_lph; 
    CLASS well idnum; 
    MODEL pctlph = well idnum well(idnum); 
    LSMEANS well /ADJUST=TUKEY E=well(idnum) PDIFF=ALL; 
QUIT; 

PROC GLM DATA=raw_lph; 
    MODEL cntrl--d = /NOUNI; 
    REPEATED Well; 
QUIT; 

處理重複措施都是關於處理主體內部的變化,而不是主體之間的變化。第一個模型失敗了,因爲它沒有誤差項,因爲我們用三個項成功計算了模型中的所有方差。這些術語是指血液處於哪種狀態,哪一個主體,以及井內的效果,還是實質上每個主體的每個井之間的差異 - 也就是主體變化。

如果你看第一組的輸出,你會發現你結束了:

Source     DF  Type III SS  Mean Square  F p-value 
well      4  134.5175200  33.6293800  .  . 
idnum      9  487.1931300  54.1325700  .  . 
well(idnum)    36  255.2066000  7.0890722  .  . 

使用LSMEANS聲明,我問了杜克調整裝置,以及; E = well(idnum)告訴系統使用well(idnum)作爲這些方法的誤差項。現在,查看第二個PROC GLM的輸出。

Source     DF Type III SS Mean Square F Value Pr 
Well      4 134.5175200  33.6293800  4.74 0.0035 
Error(Well)    36 255.2066000  7.0890722 

正如您所看到的那樣,重複措施很好地標識了相同的錯誤陳述。但是,就我所知,如果不使用CLASS語句,您無法從SAS中的任何建模過程獲得方法。所以,解決這個問題的一種方法是重構我嘗試去嘗試和「遊戲系統」的模型。或者,您可以手動計算Tukey HSD。可能有一個R包比SAS更好地處理它。

對於它的價值,我學習了Minitab的建模,它似乎實際上處理建模非常好,所以它可能值得一看。

HTH!

+0

非常感謝您的文章:)!那麼,我發現'PROC MIXED'給出了統計量。 – stan 2012-05-18 17:42:52

+0

沒問題。希望它可以幫助 - 像MIXED這樣的聲音讓你獲得你所需要的。 :) – TARehman 2012-05-21 22:12:51

相關問題