全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5229 4
2013-09-03
SAS中多水平的方差分析,怎么做,比较三个水平的差异,多谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-9-3 19:17:19
不懂,但是帮你顶贴!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-3 19:36:50
/*For reference.*/
proc glm data=sasuser.MGGarlic_Block ;
        class Fertilizer Sector;
        model BulbWt=Fertilizer Sector;
        title "ANOVA for Randomized Block Design";
run;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-5 23:08:13
看了你的提问,觉得和我前段时间做了个医学统计的数据分析很像,一个例子,供你参考:
研究不同的氧浓度(A)和不同的药物(B)对人白血病细胞K562抑制效果,因素A分为A1(含氧3%)和A2(含氧20%),因素B分为B1(表阿霉素)、B2(自制中药)、B3(132Ge)、B4(B1+ B3)、B5(B1+ B2)、B6(B2+ B3)、B7(B1+ B2+ B3);进行2*7析因设计并收集到数据如下,分析A、B两因素对K562细胞抑制的效果。

                B药物
A氧浓度        重复编号        B1        B2        B3        B4        B5        B6        B7
A1((含氧3%))        1        0.31        0.46        0.29        0.49        0.72        0.45        0.19
        2        0.18        0.39        0.18        0.51        0.49        0.42        0.20
        3        0.12        0.40        0.12        0.62        0.55        0.44        0.18
        4        0.13        0.34        0.13        0.53        0.37        0.42        0.17
A2(含氧20%)        1        0.29        0.65        0.87        0.74        1.09        1.04        0.81
        2        0.27        0.84        0.39        0.78        0.73        0.63        1.01
        3        0.29        0.45        0.57        1.45        0.81        1.18        1.18
        4        0.28        0.63        0.64        1.41        0.77        1.45        0.94

解题思路:先对数据进行交互作用分析,若无交互作用,那么分析其主效应就可以了,若主效应有多个水平,那么可以采用means a b/snk进行各个主效应的多水平的比较就可以了;
但是如果存在交互效应的话,分析主效应其意义不大,就需要把A或B控制在不同的水平下,对B或A的各个水平之间进行两两比较。
首先对交互效应的分析:
Sas程序:
data h1;
do a=1 to 2;
do r=1 to 4;
do b=1 to 7;
input x@@;
output;
end;
end;
end;
list;
cards;
0.31        0.46        0.29        0.49        0.72        0.45        0.19
0.18        0.39        0.18        0.51        0.49        0.42        0.20
0.12        0.40        0.12        0.62        0.55        0.44        0.18
0.13        0.34        0.13        0.53        0.37        0.42        0.17
0.29        0.65        0.87        0.74        1.09        1.04        0.81
0.27        0.84        0.39        0.78        0.73        0.63        1.01
0.29        0.45        0.57        1.45        0.81        1.18        1.18
0.28        0.63        0.64        1.41        0.77        1.45        0.94
;
proc anova;
class a b;
model x=a b a*b;
means a b a*b;
run;
经过数据分析,发现存在交互效应,那么采用contrast语句分析一个因素的各个水平在另外一个因素的某一水平下的两两比较;
程序如下:
data h1;
do a=1 to 2;
do r=1 to 4;
do b=1 to 7;
input x@@;
output;
end;
end;
end;
list;
cards;
0.31        0.46        0.29        0.49        0.72        0.45        0.19
0.18        0.39        0.18        0.51        0.49        0.42        0.20
0.12        0.40        0.12        0.62        0.55        0.44        0.18
0.13        0.34        0.13        0.53        0.37        0.42        0.17
0.29        0.65        0.87        0.74        1.09        1.04        0.81
0.27        0.84        0.39        0.78        0.73        0.63        1.01
0.29        0.45        0.57        1.45        0.81        1.18        1.18
0.28        0.63        0.64        1.41        0.77        1.45        0.94
;
proc glm;
class a b;
model x=a b a*b;

contrast'(a1- a2)/b1'
a 1 -1   b*a 1 0 0 0 0 0 0 -1 0 0 0 0 0 0;
contrast'(a1 vs a2)/b2'
a 1 -1   b*a 0 1 0 0 0 0 0 0 -1 0 0 0 0 0;
contrast'(a1 vs a2)/b3'
a 1 -1   b*a 0 0 1 0 0 0 0 0 0 -1 0 0 0 0;
contrast'(a1 vs a2)/b4'
a 1 -1   b*a 0 0 0 1 0 0 0 0 0 0 -1 0 0 0;
contrast'(a1 vs a2)/b5'
a 1 -1   b*a 0 0 0 0 1 0 0 0 0 0 0 -1 0 0;
contrast'(a1 vs a2)/b6'
a 1 -1   b*a 0 0 0 0 0 1 0 0 0 0 0 0 -1 0;
contrast'(a1 vs a2)/b7'
a 1 -1   b*a 0 0 0 0 0 0 1 0 0 0 0 0 0 -1;

contrast'(b1-b7)/a1'
b 1 -1 0 0 0 0 0  a*b 1 -1 0 0 0 0 0 0 0 0 0 0 0 0,
b 1 0 -1 0 0 0 0  a*b 1 0 -1 0 0 0 0 0 0 0 0 0 0 0,
b 1 0 0 -1 0 0 0  a*b 1 0 0 -1 0 0 0 0 0 0 0 0 0 0,
b 1 0 0 0 -1 0 0  a*b 1 0 0 0 -1 0 0 0 0 0 0 0 0 0,
b 1 0 0 0 0 -1 0  a*b 1 0 0 0 0 -1 0 0 0 0 0 0 0 0,
b 1 0 0 0 0 0 -1  a*b 1 0 0 0 0 0 -1 0 0 0 0 0 0 0;

contrast'(b1-b7)/a2'
b 1 -1 0 0 0 0 0  a*b 0 0 0 0 0 0 0 1 -1 0 0 0 0 0,
b 1 0 -1 0 0 0 0  a*b 0 0 0 0 0 0 0 1 0 -1 0 0 0 0,
b 1 0 0 -1 0 0 0  a*b 0 0 0 0 0 0 0 1 0 0 -1 0 0 0,
b 1 0 0 0 -1 0 0  a*b 0 0 0 0 0 0 0 1 0 0 0 -1 0 0,
b 1 0 0 0 0 -1 0  a*b 0 0 0 0 0 0 0 1 0 0 0 0 -1 0,
b 1 0 0 0 0 0 -1  a*b 0 0 0 0 0 0 0 1 0 0 0 0 0 -1;

contrast'(b1-b2)/a1'
b 1 -1 0 0 0 0 0  a*b  1 -1 0 0 0 0 0;
contrast'(b1-b3)/a1'
b 1 0 -1 0 0 0 0  a*b  1 0 -1 0 0 0 0;
contrast'(b1-b4)/a1'
b 1 0 0 -1 0 0 0  a*b  1 0 0 -1 0 0 0;
contrast'(b1-b5)/a1'
b 1 0 0 0 -1 0 0  a*b  1 0 0 0 -1 0 0;
contrast'(b1-b6)/a1'
b 1 0 0 0 0 -1 0  a*b  1 0 0 0 0 -1 0;
contrast'(b1-b7)/a1'
b 1 0 0 0 0 0 -1  a*b  1 0 0 0 0 0 -1;
contrast'(b2-b3)/a1'
b 0 1 -1 0 0 0 0  a*b  0 1 -1 0 0 0 0;
contrast'(b2-b4)/a1'
b 0 1 0 -1 0 0 0  a*b  0 1 0 -1 0 0 0;
contrast'(b2-b5)/a1'
b 0 1 0 0 -1 0 0  a*b  0 1 0 0 -1 0 0;
contrast'(b2-b6)/a1'
b 0 1 0 0 0 -1 0  a*b  0 1 0 0 0 -1 0;
contrast'(b2-b7)/a1'
b 0 1 0 0 0 0 -1  a*b  0 1 0 0 0 0 -1;
contrast'(b3-b4)/a1'
b 0 0 1 -1 0 0 0  a*b  0 0 1 -1 0 0 0;
contrast'(b3-b5)/a1'
b 0 0 1 0 -1 0 0  a*b  0 0 1 0 -1 0 0;
contrast'(b3-b6)/a1'
b 0 0 1 0 0 -1 0  a*b  0 0 1 0 0 -1 0;
contrast'(b3-b7)/a1'
b 0 0 1 0 0 0 -1  a*b  0 0 1 0 0 0 -1;
contrast'(b4-b5)/a1'
b 0 0 0 1 -1 0 0  a*b  0 0 0 1 -1 0 0;
contrast'(b4-b6)/a1'
b 0 0 0 1 0 -1 0  a*b  0 0 0 1 0 -1 0;
contrast'(b4-b7)/a1'
b 0 0 0 1 0 0 -1  a*b  0 0 0 1 0 0 -1;
contrast'(b5-b6)/a1'
b 0 0 0 0 1 -1 0  a*b  0 0 0 0 1 -1 0;
contrast'(b5-b7)/a1'
b 0 0 0 0 1 0 -1  a*b  0 0 0 0 1 0 -1;
contrast'(b6-b7)/a1'
b 0 0 0 0 0 1 -1  a*b  0 0 0 0 0 1 -1;

contrast'(b1-b2)/a2'
b 1 -1 0 0 0 0 0  a*b 0 0 0 0 0 0 0 1 -1 0 0 0 0 0;
contrast'(b1-b3)/a2'
b 1 0 -1 0 0 0 0  a*b 0 0 0 0 0 0 0 1 0 -1 0 0 0 0;
contrast'(b1-b4)/a2'
b 1 0 0 -1 0 0 0  a*b 0 0 0 0 0 0 0 1 0 0 -1 0 0 0;
contrast'(b1-b5)/a2'
b 1 0 0 0 -1 0 0  a*b 0 0 0 0 0 0 0 1 0 0 0 -1 0 0;
contrast'(b1-b6)/a2'
b 1 0 0 0 0 -1 0  a*b 0 0 0 0 0 0 0 1 0 0 0 0 -1 0;
contrast'(b1-b7)/a2'
b 1 0 0 0 0 0 -1  a*b 0 0 0 0 0 0 0 1 0 0 0 0 0 -1;
contrast'(b2-b3)/a2'
b 0 1 -1 0 0 0 0  a*b 0 0 0 0 0 0 0 0 1 -1 0 0 0 0;
contrast'(b2-b4)/a2'
b 0 1 0 -1 0 0 0  a*b 0 0 0 0 0 0 0 0 1 0 -1 0 0 0;
contrast'(b2-b5)/a2'
b 0 1 0 0 -1 0 0  a*b 0 0 0 0 0 0 0 0 1 0 0 -1 0 0;
contrast'(b2-b6)/a2'
b 0 1 0 0 0 -1 0  a*b 0 0 0 0 0 0 0 0 1 0 0 0 -1 0;
contrast'(b2-b7)/a2'
b 0 1 0 0 0 0 -1  a*b 0 0 0 0 0 0 0 0 1 0 0 0 0 -1;
contrast'(b3-b4)/a2'
b 0 0 1 -1 0 0 0  a*b 0 0 0 0 0 0 0 0 0 1 -1 0 0 0;
contrast'(b3-b5)/a2'
b 0 0 1 0 -1 0 0  a*b 0 0 0 0 0 0 0 0 0 1 0 -1 0 0;
contrast'(b3-b6)/a2'
b 0 0 1 0 0 -1 0  a*b 0 0 0 0 0 0 0 0 0 1 0 0 -1 0;
contrast'(b3-b7)/a2'
b 0 0 1 0 0 0 -1  a*b 0 0 0 0 0 0 0 0 0 1 0 0 0 -1;
contrast'(b4-b5)/a2'
b 0 0 0 1 -1 0 0  a*b 0 0 0 0 0 0 0 0 0 0 1 -1 0 0;
contrast'(b4-b6)/a2'
b 0 0 0 1 0 -1 0  a*b 0 0 0 0 0 0 0 0 0 0 1 0 -1 0;
contrast'(b4-b7)/a2'
b 0 0 0 1 0 0 -1  a*b 0 0 0 0 0 0 0 0 0 0 1 0 0 -1;
contrast'(b5-b6)/a2'
b 0 0 0 0 1 -1 0  a*b 0 0 0 0 0 0 0 0 0 0 0 1 -1 0;
contrast'(b5-b7)/a2'
b 0 0 0 0 1 0 -1  a*b 0 0 0 0 0 0 0 0 0 0 0 1 0 -1;
contrast'(b6-b7)/a2'
b 0 0 0 0 0 1 -1  a*b 0 0 0 0 0 0 0 0 0 0 0 0 1 -1;
run;
注意:若a和b之间没有交互作用的话,那么可以分别比较a和b因素下的各个水平之间的差异,程序如下:
data h1;
do a=1 to 2;
do r=1 to 4;
do b=1 to 7;
input x@@;
output;
end;
end;
end;
list;
cards;
0.31        0.46        0.29        0.49        0.72        0.45        0.19
0.18        0.39        0.18        0.51        0.49        0.42        0.20
0.12        0.40        0.12        0.62        0.55        0.44        0.18
0.13        0.34        0.13        0.53        0.37        0.42        0.17
0.29        0.65        0.87        0.74        1.09        1.04        0.81
0.27        0.84        0.39        0.78        0.73        0.63        1.01
0.29        0.45        0.57        1.45        0.81        1.18        1.18
0.28        0.63        0.64        1.41        0.77        1.45        0.94
;
proc glm;
class a b;
model x=a b a*b;
lsmeans a b a*b;
contrast'(a1-a2)'
a 1 -1;
contrast'(b1-b2)'
b 1 -1 0 0 0 0 0;
contrast'(b1-b3)'
b 1 0 -1 0 0 0 0;
contrast'(b1-b4)'
b 1 0 0 -1 0 0 0;
contrast'(b1-b5)'
b 1 0 0 0 -1 0 0;
contrast'(b1-b6)'
b 1 0 0 0 0 -1 0;
contrast'(b1-b7)'
b 1 0 0 0 0 0 -1;
contrast'(b2-b3)'
b 0 1 -1 0 0 0 0;
contrast'(b2-b4)'
b 0 1 0 -1 0 0 0;
contrast'(b2-b5)'
b 0 1 0 0 -1 0 0;
contrast'(b2-b6)'
b 0 1 0 0 0 -1 0;
contrast'(b2-b7)'
b 0 1 0 0 0 0 -1;
contrast'(b3-b4)'
b 0 0 1 -1 0 0 0;
contrast'(b3-b5)'
b 0 0 1 0 -1 0 0;
contrast'(b3-b6)'
b 0 0 1 0 0 -1 0;
contrast'(b3-b7)'
b 0 0 1 0 0 0 -1;
contrast'(b4-b5)'
b 0 0 0 1 -1 0 0;
contrast'(b4-b6)'
b 0 0 0 1 0 -1 0;
contrast'(b4-b7)'
b 0 0 0 1 0 0 -1;
contrast'(b5-b6)'
b 0 0 0 0 1 -1 0;
contrast'(b5-b7)'
b 0 0 0 0 1 0 -1;
contrast'(b6-b7)'
b 0 0 0 0 0 1 -1;
run;
但是显然a和b是有交互作用的,这里写的这种情况是没有交互作用的。
程序看起来很吓人,其实也就是个体力活。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-5 23:11:45
刚才又看了遍楼主的提问,怀疑自己是不是把问题搞复杂了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群