SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 663|回复: 0
打印 上一主题 下一主题

问一个关于CMH里的一个原理

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-10-16 11:34:39 | 只看该作者

问一个关于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]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 04:33 , Processed in 0.067014 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表