SAS macro for exact two-sample permutation test-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

SAS macro for exact two-sample permutation test

SAS macro for exact two-sample permutation test

发布:jennyli1346 | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

[url=]Abstract[/url]AnalgorithmwritteninSAS/IMLispresentedthatcanperformanexactpermutationtestforatwo-samplecomparison.Allpossiblepermutationsareconsidered.TheBaumgartner-Wei?Schindlerstatisticisexemp ...
免费学术公开课,扫码加入


[url=]Abstract[/url]An algorithm written in SAS/IML is presented that can perform an exact permutation test for a two-sample comparison. All possible permutations are considered. The Baumgartner-Wei?Schindler statistic is exemplarily used as the test statistic for the permutation test.
[url=]Program[/url]The following SAS macro includes the exact permutation test:
%MACRO Permtest(indata);
proc iml;
/* Reading the data */
USE &indata;
READ ALL INTO currdata;
/* Computation of ranks */
ranks=RANKTIE(currdata[ ,2]);
/* Calculation of the sample sizes per group */
N_total=Nrow(currdata[ ,2]);
n2=currdata[+,1];
n1=N_total-n2;
print N_total n1 n2;
/* Creation of all possible permutations */
start perm(n,n_1);
matrix = shape(0,(gamma(n+1)/(gamma(n_1+1)*gamma(n-n_1+1))),n);
index = 1;
vektor=shape(-1,1,n);
pos = 1;
ok = 1;
do while(ok=1);
if pos > n then do;
if vektor[,+] = n_1 then do;
matrix[index,]= vektor;
index = index + 1;
end;
pos = pos-1;
end;
else do;
if vektor[,pos] < 1 then do;
vektor[,pos] = vektor[,pos]+1;
pos = pos+1;
end;
else do;
vektor[,pos]=-1;
pos = pos-1;
end;
end;
if pos < 1 then ok = 0;
end;
return (matrix);
finish;
permutations = perm(N_total,n1);
P=Nrow(permutations);
/* Calculation of test statistic */
start test_sta(R1, R2, N_total, n1, n2);
b=R1;
R1[,rank(R1)]=b;
b=R2;
R2[,rank(R2)]=b;
i=1:n1;
j=1:n2;
Bx=sum( (R1-(N_total/n1)#i)##2/( (i/(n1+1))#(1-(i/(n1+1)))#n2 ) );
By=sum( (R2-(N_total/n2)#j)##2/( (j/(n2+1))#(1-(j/(n2+1)))#n1 ) );
B=Bx+By;
return (B);
finish;
/* Carrying out the test */
Tab=REPEAT(T(ranks),P,1);
R1=choose(permutations=0,.,Tab);
R2=choose(permutations=1,.,Tab);
R1g=R1[loc(R1^=.)];
R2g=R2[loc(R2^=.)];
R1z=shape(R1g,P, n1);
R2z=shape(R2g,P, n2);
test_st0=
test_sta(T(ranks[1:n1]),T(ranks[(n1+1):N_total]), N_total, n1, n2);
Pval=0;
do i=1 to P by 1;
B = test_sta(R1z[ i , ], R2z[ i , ], N_total, n1, n2);
if B >= test_st0 then Pval=Pval+1;
end;
Pval=Pval/P;
/* Definition of output */
x=(Pval || test_st0 || P);
cols={P_value test_statistic total_Perms};
print x[colname=cols];
/* optional: Creation of an output dataset called results */
CREATE results FROM x[colname=cols];
APPEND FROM x;
CLOSE results;
/**********************************************************/
quit;
%MEND Permtest;
In order to use this macro the SAS dataset needs the variables GROUP and VALUE (in this order). The variable GROUP should have the values 0 and 1 as codes for the two groups. Thus, the data step is as follows:
DATA example1;
INPUT group value @@;
CARDS;
0 154 0 155 0 158 0 159 0 161 0 163 0 177 0 183 0 192 0 219
1 171 1 172 1 178 1 179 1 184 1 185 1 186 1 194 1 196 1 223
;
RUN;
Here we use a placebo-controlled trial as an example. The raw data in the data step given above are reaction times (in msec) and were presented by Sedlmeier and Renkewitz ([14], p. 583]. The placebo group is coded as 0, the active group as 1. In this example there are no ties. However, our program also works in the presence of ties.
The macro can be invoked with the following statement:
%Permtest(example1);
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-673620-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)