假定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, 代码,程序