注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

公卫人

博学而笃志 切问而近思

 
 
 

日志

 
 

多组样本数据的非参数检验及两两比较 [SAS]  

2014-02-13 14:02:03|  分类: 统计分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

由于各个样本的总体呈偏态分布或方差不齐,无法使用方差分析中的两两比较,检验其总体分布是否相同,常用的非参数秩和检验方法是Kruskal-Wallis 法,在SAS 软件中实现的过程步有以下三种方法: NPAR1 WAY 过程、FREQ过程以及RAN K 和ANOVA 两过程的结合,而样本间两两比较则可以通过RAN K 和ANOVA 两过程的结合,采用MEANS 语句来实现,即先对原始数据进行排序,求相应的秩次,然后对秩进行参数的多重比较。
调用FREQ 过程产生的第二个CMH统计量” row mean scores differ” (Kruskal-Wallis结果)、NPAR1 WAY 过程产生的卡方统计量以及ANOVA 过程产生的R-Square 与υ总(总自由度)之积,即为Kruskal-Wallis 检验结果。本文种ANOVA 过程步中的MEANS 规定采用LSD 法进行两两比较,也可使用其他方法。
data sample ;
do group = 1 to 3 ;
input x @@;
output ;
end ;
cards ;
9.8 0.6 0.4 10.2 1.2 1.9 10.6 2.0 2.2 13.0
2.4 2.5 14.0 3.1 2.8 14.8 4.1 3.1 15.6 5.0
3.7 15.6 5.9 3.9 21.6 7.4 4.6 24.0 13.6 7.0
;
proc freq ;
tables group*x/ scores = rank cmh2 noprint;
run;
proc npar1way wilcoxon;
class group;
var x;
run;
proc rank data =sample out = a ;
var x;
ranks r;
proc anova;
class group ;
model r = group ;
means group/ lsd snk ;
run;
quit;

成组设计的等级资料或频数表资料多个样本及其两两比较
这种类型的资料为成组设计的等级资料或频数表资料,但频数表资料时各个样本的总体呈偏态分布或方差不齐,检验其总体分布是否相同,常用的非参数秩和检验方法也是Kruskal-Wallis 法,在SAS 软件中实现的过程步同上,程序略有差别。
data sample2;
do effect = 1 to 4 ;
do group = 1 to 3 ;
input f @@;
output ;
end ;
end ;
cards ;
10 24 48 17 41 65 19 33 36 4 7 8
;
proc freq;
tables group*effect/ scores = rank cmh2 noprint;
weight f;
run;
data a;
set sample2;
do i = 1 to f ;
output;
end ;
run;
proc npar1way wilcoxon data=a;
var effect;
class group;
run;
proc rank data=a out=b;
var effect ;
ranks r;
run;
proc glm;
class group;
model r = group ;
means group/lsd snk tukey dunnett ;
run;
quit;

随机区组设计的定量资料多个样本及其两两比较
各个样本的总体呈偏态分布或方差不齐,检验其总体分布是否相同,常用的非参数秩和检验方法是Friedman 法,在SAS 软件中实现的过程步有以下两种方法: FREQ 过程以及RAN K和GLM 两过程的结合。各个样本两两比较可通过RAN K 和GLM 两过程的结合, 采用LSMEANS 语句来实现
调用FREQ 过程产生的第二个CMH统计量和GLM 过程产生的R2 与(υ总-υ区组) 之积,即
为Friedman 检验结果。LSMEANS 语句规定对调整后的样本均数进行两两比较。
data sample3;
do block = 1 to 7 ;
do treat = 1 to 4 ;
input x @@;
output;
end;
end ;
cards ;
63 188 138 54 90 238 220 144 54
300 83 92 45 140 213 100 54 175
150 36 72 300 163 90 64 207 185 87
;
proc freq ;
tables block*treat*x/ scores = rank cmh2 noprint;
run;
proc sort data=sample3 out=a;
by block ;
run;
proc rank data=a out=b;
var x;
by block;
ranks r ;
run;
proc glm data=b ;
class treat block ;
model r = treat block/ ss1 ;
lsmeans treat/ stderr pdiff ;
run;
quit;

  评论这张
 
阅读(937)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017