SAS中文论坛
标题:
问一个关于CMH里的一个原理
[打印本页]
作者:
shiyiming
时间:
2009-10-16 11:34
标题:
问一个关于CMH里的一个原理
[b:w8cmiiol][color=#004080:w8cmiiol]背景:
对于多中心的资料我们用CMH方法来消除中心效应以比较组间是否存在差异,这是PROC里面CMH最一般的应用方法。使用之前需要weight计数变量作为权重。
其计算的公式在SAS官网给出了,都是矩阵计算。([url:w8cmiiol]http://v8doc.sas.com/sashtml/stat/chap28/sect27.htm[/url:w8cmiiol])
这一类的SAS程序形如:
proc freq;
weight count;
tables hospital*type*effect/cmh;
run;
其中:hospital 为中心变量(层),type为组变量(行),effect为效应变量(列)
每一层的行和列的数据都能组成规整的矩阵,因此运用给出的公式很容易计算出各个结果[/color:w8cmiiol][/b:w8cmiiol]
[b:w8cmiiol][color=#008040:w8cmiiol]最近看到一本书上介绍非参数资料也可以用CMH来做,常用的Wilcoxon-Mann-Whitney, Kruskal-Wallis, Spearman Correlation, Freidman 和Durbin都可以用CMH语句来做,并且可以做多中心的资料,这是CMH在这里的巨大优势。下面给出一个最简单的例子(节省篇幅仅给出一层):
为研究不同饲料对雌鼠体重增加的关系:
饲料 鼠数 | 各鼠所增体重
高蛋白 12 | 134 146 104 119 124 161 107 83 113 29 97 123
低蛋白 7 | 70 118 101 85 107 132 94
SAS程序如下(数据步略写):
data mouse;
input group $ subject weight @@;
cards;
high 1 134 high 2 146 high 3 104
high 4 119 high 5 124 high 6 161
.
.
.
low 1 70 low 2 118 low 3 101
.
.
;
proc freq;
tables group*weight/noprint CMH2 scores=rank;
run;
其中group就是高蛋白和低蛋白组[/color:w8cmiiol][/b:w8cmiiol]
[b:w8cmiiol]问题:
上述非参数资料的数据为[color=#FF0000:w8cmiiol]计量资料[/color:w8cmiiol],而且没有了所谓的[color=#FF0000:w8cmiiol]分组变量、效应变量[/color:w8cmiiol]。既然用CMH命令仍然能得到结果,那么SAS在计算的时候是怎么构建相应的矩阵进行计算的呢?[/b:w8cmiiol]
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2