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