我相当肯定,根据我在 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;
现在,下面有两个块,一个具有更传统的 ANOVA 格式,一个设置为使用 REPEATED 语句。
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;
处理重复测量就是处理受试者内部的变化,而不是受试者之间的变化。第一个模型失败是因为它没有错误项,因为我们成功地用三个项解释了模型中的所有方差。这些术语是血液在哪个井中,它是哪个主题,以及嵌套在 idnum 中的井的效果 - 或者本质上,每个主题的每个井之间的差异 - 也就是在主题变化中。
如果您查看第一组的输出,您会看到最终得到:
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 语句,我要求 Tukey-adjusted 均值很好;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。也可能有一个比 SAS 处理得更好的 R 包。
对于它的价值,我在 Minitab 上学习了建模,它实际上似乎很好地处理了建模,所以它可能值得一看。
!