参数估计的运用相当广泛,但它要求我们知晓数据的分布,如正太分布,二项分布或泊松分布等等。如果我们不知道数据的总体(样本)分布,又或数据不符合参数估计的前提条件,这时候可以考虑非参数估计。它的主要缺点是:对于符合参数检验的用非参检验得到的结果不如参数估计的理想,它犯第二类错误的可能性更大。下面学习下几种非参检验。
1.Wilcoxon-Mann-Whitney Test
该种检验的零假设是两组应变量服从来自独立同分布的样本,临床上的配对试验、成组设计都可以用这个。若两样本都可以用t检验,就可以用该种非参检验方法。此时我们可以比较一下两种检验方法,会发现两者结果非常接近。如果两组数据分布不对称,我们会发现非参检验更优。当样本容量很小,通常要考虑小样本的分布情况。
2.Kruskal-Wallis Test
该种检验方法是将上面的情况进行了推广,运用于多组数据比较的检验。其零假设同上,即多组数据应是独立同分布的。当单因素方差分析适用时就可以考虑运用该种非参检验。
3.Friedman’s Chi-Square Test
该种非参检验方法适用于完全随机区组的实验设计。当然它不像sas中的mixed语句从总体把握的,当我们目的是控制其它因素对应变量的影响而只关注于一个特定因子的影响时,我们可以考虑它。该种方法涉及到区组设计,详情可以参考相关书籍。注意,它与方差分析的差别主要是后者假设条件是实验误差服从正太分布,前者无。
4.完全随机区组设计的秩和检验
对于完全随机区组设计实验,若区组的观测数比较少、区组比较少,Friedman’s Chi-Square Test都会不理想,理由是这种情况下各因素组间以及因素与应变量间的关系不确定性更多。例如,如果只有两组数据Friedman's test会减少符号秩时影响就会很大,区组多的时候影响就会很小。这种情况可以考虑修正秩的秩和检验。其原理是将各组数据减去一个数(通常是均数,中位数),使得数据间更具有可比性。
5.对称不完全区组的Durbin’s Test
与完全随机区组设计不同,这种情况下分组对称,但每个区组包含不同实验单位,各个区组接受不同实验处理,但每个实验处理等次数进行。
附:几种非参检验的sas代码实现
1.符号检验
data midterm;
input grade @@;
diff=grade-75;
datalines;
64 71 80 69 55 84 77 63 68 90 66 61 84 43 80
66 68 89 71 59 52 62 60 79 43 63 68 72 60 77
80 73 40 74 63 68 95 66 59 70 73 62 64 62 77
81 73 64 82 59 84 70 70 71 49 90 84 66 69 62
;
proc univariate normal;
var diff;
run;
2.Wilcoxon秩和检验(两配对样本差别比较)
data;
input x1 x2;
d=x2-x1;
datalines;
39 55 42 54 51 55 43 47
55 53 45 63 22 52 48 44
40 48 45 55 40 32 49 57
;
proc univariate;
var d;
run;
3.Wilcoxon秩和检验(两独立样本)
data temp;
do g=1 to 2;
input x@@;
output;
end;
datalines;
7 3 14 5 22 6 36 10
40 17 48 18 63 20 98 39
;
proc npar1way wilcoxon;
class g;
var x;
run;
4.Wilcoxon秩和检验(两组数据不对称)
data sodium;
input group $ subject intake;
datalines;
Normal 1 10.2
Normal 2 2.2
Normal 3 0.0
Normal 4 2.6
Normal 5 0.0
Normal 6 43.1
Normal 7 45.8
Normal 8 63.6
Normal 9 1.8
Normal 10 0.0
Normal 11 3.7
Normal 12 0.0
Hyperten 1 92.8
Hyperten 2 54.8
Hyperten 3 51.6
Hyperten 4 61.7
Hyperten 5 250.8
Hyperten 6 84.5
Hyperten 7 34.7
Hyperten 8 62.2
Hyperten 9 11.0
Hyperten 10 39.1
;
proc freq;
tables group*intake / noprint cmh2 scores=rank;
run;
/*等价于下面的代码,一个用到Mantel-Haenszel相关系数,一个用卡方*/
proc freq;
tables group*intake / noprint chisq scores=rank;
run;
5.Kruskal-Wallis秩和检验(多个区组)
data ;
do n=1 to 7;
do g=1 to 3;
input x@@;
output;
end;
end;
datalines;
3012 2532 8138 9458 4682 2073
8419 2025 1867 9580 2268 885
13590 2775 6490 12787 2884 9003
6600 1717 0
;
proc npar1way wilcoxon;
class g;
var x;
run;
6.Friedman检验
data electrod;
input subject resist1-resist5;
type=1; resist=resist1; output;
type=2; resist=resist2; output;
type=3; resist=resist3; output;
type=4; resist=resist4; output;
type=5; resist=resist5; output;
/*@@也可以实现输入多组变量*/
datalines;
1 500 400 98 200 250
2 660 600 600 75 310
3 250 370 220 250 220
4 72 140 240 33 54
5 135 300 450 430 70
6 27 84 135 190 180
7 100 50 82 73 78
8 105 180 32 58 32
9 90 180 220 34 64
10 200 290 320 280 135
11 15 45 75 88 80
12 160 200 300 300 220
13 250 400 50 50 92
14 170 310 230 20 150
15 66 1000 1050 280 220
16 107 48 26 45 51
;
proc freq;
tables subject*type*resist / noprint cmh2 scores=rank;
run;
参考文献(程序来源)
《Categorical Data Analysis Using the SAS® System》
《多元统计与sas》
《SAS统计分析》
《统计学导论》