2024年1月24日发(作者:道司晨)
应用SAS软件实现非参数资料Wilcoxon—Wilcox检验
42?浙江省医学科学院2007年3月(总第68期)
应用SAS软件实现非参数资料Wilcoxon—Wilcox检验
顾刘金
研究工作中许多资料的统计不适宜采
用参数检验,如等级资料,非正态分布或虽
呈正态分布但方差不齐,对这些资料的推断
性统计,除了部分资料进行数据转换后可进
行参数检验外,很大一部分资料需进行非参
数检验.许多统计软件都提供了非参数检验
的程序,如SAS统计软件的NPAR1WAY过
程【",但如需进一步作多样本资料的两两比
较或各处理组与对照组比较,则没有直接的
程序,需进行复杂的编程才能完成.本文介
绍非参数检验的Wilcoxon—Wilcox检验的
SAS统计程序.
1统计方法
Wilcoxon—Wilcox检验用于各处理组与
对照组比较,其统计公式为:
q'=IRr一I/SR
SR=((n(na)(na+1)/6)
其中Rr为各处理组与对照组秩和
之差,S为差的标准误,n为每组样本含量,a
为组距.根据统计量q'值查表求P值圆.
2统计程序
%letg=4;,木实验资料有4个剂量组,
g<=10,
%letdn=lO;,木每组10个样本/
datatemp1;
inputdp@@录人数据,P为某实验的
尿蛋白结果(等级资料),d为剂量分组,0:对
照组,1,2,3:三个处理组$/
datalinesJ*数据格式:剂量分组,观测值
00010000
作者单位:310013,杭州,浙江省医学科学院卫生学研究所
12101l1l
22232222222222222322
32323232333332323434
;
procrankout=temp1;/编秩,变量
prank,
varp;ranksprank;
procsql;/计算各剂量组秩和trank/
createtabletemp2as
selectdistinctd,sum(prank)astrank
fromtempl
groupbyd:
quit;
procrankdata=temp2out=temp2;/秩
和排位,变量rk*/
vartrank;ranksrk;
datatemp2;
settemp2;
arra);a(&al-a&g;/组距/
array&rl-r&g;/秩和/
arrayq(&ql-q&g;/Wilcoxon—Wilcox
检验q'值/
arrayP(&Spl-p&gflP值/
arrayp05(9);/*P=0.05时q'临界值/
arraypOl(9);/*P=0.01时q'临界值/
retainrl—-r&gal-a&g;
r(_nj=trank;a(.-Jl-)=rk;
if—
n一
=
>hendo如果数据步至文件
尾/
p05(1)=1.96;p05(2)=2.21;p05(3)=2.35;
浙江省医学科学院2007年3月(总第68期)
p05(4)=2.44;pO5(5)=2.51;
p05(6)=2.57;p05(7)=2.61;pO5(8)=2.65;
p05(9)=2.69;
pOl(1)=2.58;p01(2)=2.79;p01(3)=2.92;
pO1(4)=3.O0;p01(5)=3.06;
p01(6)=3.11;p01(7)=3.15;p01(8)=3.19;
p01(9)=3.22;
doi=2to&g;
a(i)=int(abs(a(i)-a(1)))+1;/计算组距,
ifa(i)<2thena(i)-2;
计算q'值/
q(i)=abs(r(i)一r(1))/sqrt(&dn(&dna(i))
(&dna(i)+1),6);
select;判断P值,
when(q(i)<p05(a(i)一1))p(i)=>O.05;
when(q(i)=p05(a(i)一1))p(i)==O.05;
when(q(i)>p05(a(i)一1)&q(i)<pO1(a(i)一1))P
(i)=<O.05;
when(q(i)=p01(a(i)一1))p(i)==O.O1;
when(q(i)>p01(a(i)-1))p(i)=<O.O1;
end;
end;
put@22resultofWilcoxon-Wilcox
test;输出结果,
put#3@12group@22Valueof
statistic@45ValueofP;
d0j=2to&g;
x=j-1;
put#(j+2)@11x@13and@170
43?
@25qO)@48p(j);
end;
end;
run;quit;
3结果输出
Wilcoxon—Wilcox输出结果:
resultofWilcoxon—.Wilcoxtest
groupValueofstatisticValueofP
1and01.3984685501>O.05
2and03.2893032893<O.O1
3and03.1273137776<O.O1
上述SAS统计程序适用完全随机设计
资料非参数检验的各剂量组与对照组比较的
统计检验,且要求各组样本量相同.符合上述
要求的资料,只需更改程序头的宏变量g(剂
量组数),dn(每组样本数)及datalines语句
后的实验数据,即可运行程序进行统计.如在
毒理学研究中,完全随机设计是应用最广的
实验设计方法,且通常设计为各组实验动物
数相同,由此获得的实验资料如果不适用于
参数检验,则可采用上述的SAS程序,如适
用于参数检验,亦可采用上述的SAS程序,
但检验效能有所下降[31.
参考文献
【1】薛富波,张文彤,田晓燕.SAS8.2统计应用教程【M】.北
京:兵器工业出版社,2004,162—173.
【2】郭祖超.医用数理统计方法【M】.北京:人民卫生出版社,
1988,634-642.
【3】徐天和.中国医学统计百科全书?非参数统计分册【M】.北
京:人民卫生出版社.2O04.1-4.
2024年1月24日发(作者:道司晨)
应用SAS软件实现非参数资料Wilcoxon—Wilcox检验
42?浙江省医学科学院2007年3月(总第68期)
应用SAS软件实现非参数资料Wilcoxon—Wilcox检验
顾刘金
研究工作中许多资料的统计不适宜采
用参数检验,如等级资料,非正态分布或虽
呈正态分布但方差不齐,对这些资料的推断
性统计,除了部分资料进行数据转换后可进
行参数检验外,很大一部分资料需进行非参
数检验.许多统计软件都提供了非参数检验
的程序,如SAS统计软件的NPAR1WAY过
程【",但如需进一步作多样本资料的两两比
较或各处理组与对照组比较,则没有直接的
程序,需进行复杂的编程才能完成.本文介
绍非参数检验的Wilcoxon—Wilcox检验的
SAS统计程序.
1统计方法
Wilcoxon—Wilcox检验用于各处理组与
对照组比较,其统计公式为:
q'=IRr一I/SR
SR=((n(na)(na+1)/6)
其中Rr为各处理组与对照组秩和
之差,S为差的标准误,n为每组样本含量,a
为组距.根据统计量q'值查表求P值圆.
2统计程序
%letg=4;,木实验资料有4个剂量组,
g<=10,
%letdn=lO;,木每组10个样本/
datatemp1;
inputdp@@录人数据,P为某实验的
尿蛋白结果(等级资料),d为剂量分组,0:对
照组,1,2,3:三个处理组$/
datalinesJ*数据格式:剂量分组,观测值
00010000
作者单位:310013,杭州,浙江省医学科学院卫生学研究所
12101l1l
22232222222222222322
32323232333332323434
;
procrankout=temp1;/编秩,变量
prank,
varp;ranksprank;
procsql;/计算各剂量组秩和trank/
createtabletemp2as
selectdistinctd,sum(prank)astrank
fromtempl
groupbyd:
quit;
procrankdata=temp2out=temp2;/秩
和排位,变量rk*/
vartrank;ranksrk;
datatemp2;
settemp2;
arra);a(&al-a&g;/组距/
array&rl-r&g;/秩和/
arrayq(&ql-q&g;/Wilcoxon—Wilcox
检验q'值/
arrayP(&Spl-p&gflP值/
arrayp05(9);/*P=0.05时q'临界值/
arraypOl(9);/*P=0.01时q'临界值/
retainrl—-r&gal-a&g;
r(_nj=trank;a(.-Jl-)=rk;
if—
n一
=
>hendo如果数据步至文件
尾/
p05(1)=1.96;p05(2)=2.21;p05(3)=2.35;
浙江省医学科学院2007年3月(总第68期)
p05(4)=2.44;pO5(5)=2.51;
p05(6)=2.57;p05(7)=2.61;pO5(8)=2.65;
p05(9)=2.69;
pOl(1)=2.58;p01(2)=2.79;p01(3)=2.92;
pO1(4)=3.O0;p01(5)=3.06;
p01(6)=3.11;p01(7)=3.15;p01(8)=3.19;
p01(9)=3.22;
doi=2to&g;
a(i)=int(abs(a(i)-a(1)))+1;/计算组距,
ifa(i)<2thena(i)-2;
计算q'值/
q(i)=abs(r(i)一r(1))/sqrt(&dn(&dna(i))
(&dna(i)+1),6);
select;判断P值,
when(q(i)<p05(a(i)一1))p(i)=>O.05;
when(q(i)=p05(a(i)一1))p(i)==O.05;
when(q(i)>p05(a(i)一1)&q(i)<pO1(a(i)一1))P
(i)=<O.05;
when(q(i)=p01(a(i)一1))p(i)==O.O1;
when(q(i)>p01(a(i)-1))p(i)=<O.O1;
end;
end;
put@22resultofWilcoxon-Wilcox
test;输出结果,
put#3@12group@22Valueof
statistic@45ValueofP;
d0j=2to&g;
x=j-1;
put#(j+2)@11x@13and@170
43?
@25qO)@48p(j);
end;
end;
run;quit;
3结果输出
Wilcoxon—Wilcox输出结果:
resultofWilcoxon—.Wilcoxtest
groupValueofstatisticValueofP
1and01.3984685501>O.05
2and03.2893032893<O.O1
3and03.1273137776<O.O1
上述SAS统计程序适用完全随机设计
资料非参数检验的各剂量组与对照组比较的
统计检验,且要求各组样本量相同.符合上述
要求的资料,只需更改程序头的宏变量g(剂
量组数),dn(每组样本数)及datalines语句
后的实验数据,即可运行程序进行统计.如在
毒理学研究中,完全随机设计是应用最广的
实验设计方法,且通常设计为各组实验动物
数相同,由此获得的实验资料如果不适用于
参数检验,则可采用上述的SAS程序,如适
用于参数检验,亦可采用上述的SAS程序,
但检验效能有所下降[31.
参考文献
【1】薛富波,张文彤,田晓燕.SAS8.2统计应用教程【M】.北
京:兵器工业出版社,2004,162—173.
【2】郭祖超.医用数理统计方法【M】.北京:人民卫生出版社,
1988,634-642.
【3】徐天和.中国医学统计百科全书?非参数统计分册【M】.北
京:人民卫生出版社.2O04.1-4.