我相當肯定,根據我的經驗,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!
你是否缺少'class'語句? – itzy 2012-04-07 17:47:02
@itzy不......我沒有'class'變量......我不知道怎麼解釋,但是'AA BB CC DD EE'是*一個因素的* 5水平*(試驗) *(條件)。我該怎麼辦? – stan 2012-04-07 19:13:56
我對這些模型瞭解不多,但是您可能必須在模型語句之前使用一個聲明「class AA BB CC DD EE」的語句來識別具有這種級別的變量。 – itzy 2012-04-08 00:46:32