permutation 随机置换检验的Matlab程序

假定a为某指标在10个样本中的值,5个一组,看以两组均值的差为例(统计量),随机置换检验程序


example: a: 230 -1350 -1580 -400 -760 970 110 -50 -190 -200
v1=sum(a(1:5))/5;
v2=sum(a(6:10))/5;
T=abs(v1-v2);
x=perms(a);      %矩阵a的全排列(随机全排列)
v11=(x(:,1)+x(:,2)+x(:,3)+x(:,4)+x(:,5))/5;
v22=(x(:,6)+x(:,7)+x(:,8)+x(:,9)+x(:,10))/5;
TT=abs(v11-v22);
[m,n]=size(TT);
distribution=tabulate(TT); %产生频率分布
hist(X)            % 产生直方图
num=0;            %大于原始差值的个数
for i=1:m
    if TT(i,1)>T
        num=num+1;
    end
end
p=num/m

 

key words:  permutation tests, codes ,matlab, 代码,程序

from: http://www.biostatistic.net/thread-41-1-1.html

posted @ 2011-06-16 09:46  emanlee  阅读(5607)  评论(0编辑  收藏  举报