Agri521'Blog分享 http://blog.sciencenet.cn/u/agri521 研究方向:作物模型、统计计算

博文

SAS系统Contrast 语句详解

已有 17400 次阅读 2010-7-17 13:16 |个人分类:统计计算|系统分类:科研笔记| SAS, CONTRAST

我在”【总结】方差分析系列<一>——用好 ANOVA中的Contrast选项“中曾简单介绍了contrast选项,下面我翻译并整理了SAS中contrast语句常数向量的获取方 法,也适用于SAS的estimate语句和SPSS软件。

本文主要内容整理自”A quick guide to writing contrast statements in SAS and SPSS“。

Contrast语句使你可以用自定义的方式进行假设检验,它必须出现在model语句之 后。如果用到manova语句、repeated语句、random语句或test语句,contrast语句必须出现在这些语句之前。标记用来标识所进 行的检验,用以标识的文字或符号需用单引号括起来。效应表达式用以指定假设检验的因素(组合),这些因素(组合)必须是model语句中出现过的。效应表 达式后的常数向量用以指定相应因素(组合)各水平的值,在指定各水平的情况下进行相关因素的分析。

下面将举例说明效应表达式常数向量获取过程。

1. 影响因素的顺序及编码方式

在SAS中,class语句指定了因素的顺序,这决定着contrast语句中常数向量的写 法。

在默认情况下,因素按字母顺序或数值大小进行编码。例如,如果变量”sex”有”男性”和” 女性”两个值,并分别用M和F表示。那么,程序将先为F(女性)计算系数。

2. 数据的描述统计

在SAS中,使用proc univariate可以使我们对数据集有个粗略的认识。输出结果里还包括盒子图。

3. 确定感兴趣的差异比较

假设一个完全随机区组试验设计,有A、B和C三个因素。A因素有2个水平(1和2),B因素 有3个水平(1、2和3),C因素有4个水平(1、2、3和4)。 我们设定一个简单比较:当b为2时,比较A 2个水平之间的差异。

4. 新建一个系数表,并关注影响因素顺序及其水平顺序。

根据A和B因素在class语句里的排列顺序,A因素出现在行,而B因素出现在列,并把A和 B因素水平按数值大小排列(如下图)。在表格左侧和顶部的单元格标明需比较水平的系数(红色斜体表示)。

5. 表格左侧的系数与顶部的系数两两相乘,并在相应单元格里标明结果。那么,A*B交互项的系数为0 1 0 0 -1 0(红色表示)。

6. 把交互项系数横向和纵向相加,并写到表格右侧和底部。

这些值是A(表格右侧)和B(表格底部)主效应系数。由于B主效应的系数均为零,可以不出现 在contrast语句。对于A,我们必需按顺序写为1 -1。

7. 表格右侧和底部系数相加,即得截距的系数,并写到右下角单元格。因为其值为零,截距不出现在contrast语句中。

8.最后,即得contrast语句。

对于SAS系统的proc glm 或proc mixed过程步,contrast语句可写为:contrast “A1 v A2 in B2″ A 1 -1 A*B 0 1 0 0 -1 0;

在SAS系统里,小于1的至少4位十进制小数也可作为常数向量 (如:0.3333)。

现在,设想同一试验数据,但我们对一个更复杂的差异比较感兴趣,这涉及到A、B和C 三个因素。设定C的4水平是对照,那么你可以让1、2和3水平与4水平进行比较,而且是在B为2和A为1条件下。

下面,我们将以在B为2和A为1条件下C的1水平与4水平比较为例。

1. 首先取A和B两个因素,建立参数表。

从上图可知,contrast语句需要保留A、B以及截距项,但这一步还不能下这个结论。

2. 现在,检查A*B交互项与C,以找到A*B*C交互项的系数。

从上图可知,contrast语句不需保留截距和A*B交互项,而保留C。这里才能确定C项需要保留。

3. 由于C保留,所以我们检查A与C,B与C,以确定contrast语句还需要保留哪些项。

A*C

这样,contrast语句不保留A和截距,而将保留C。

B*C

因此,contrast语句将不保留B和截距,但C将保留。

4. 最后,还需要B*C与A和A*C与B,以确定最后两项是否进入contrast语句。

B*C与A

我们已经知道contrast语句不保留A和截距项,但B*C将保留。

A*C与B

contrast语句不保留B和截距,但保留A*C。

5. 到此为止,我们已经确定了contrast语句里需指定的效应:C, A*C, B*C, and A*B*C。

contrast语句将写为:

contrast “C1 v C4 in A1 and B2″
C 1 0 0 -1
A*C 1 0 0 -1 0 0 0 0
B*C 0 0 0 0 1 0 0 -1 0 0 0 0
A*B*C 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;

注:于非零系数之后的零可以省略。所以,A*B*C 0 0 0 0 1 0 0 -1与上面的意义相同。

6. 我们对其它比较也可能感兴趣,如水平2,3与4比较。

对于C 2 v 4 in A1 and B2

contrast “C2 v C4 in A1 and B2″ C 0 1 0 -1
A*C 0 1 0 -1 0 0 0 0
B*C 0 0 0 0 0 1 0 -1 0 0 0 0
A*B*C 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;

对于 C 3 V C4 in A1 and B2

contrast “C3 v C4 in A1 and B2″ C 0 0 1 -1
A*C 0 0 1 -1 0 0 0 0
B*C 0 0 0 0 0 0 1 -1 0 0 0 0
A*B*C 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;

延伸资料:

How can I do ANOVA contrasts?



https://blog.sciencenet.cn/blog-81938-342040.html

上一篇:R语言AIS软件包详解--look函数
下一篇:使用的是哪个作物生长模型?
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-29 05:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部