你这不叫随机抽样
叫枚举
是置换检验(精确检验)的基本思想
枚举的样本数=C(N, n1),你的例子C(8,4)=70;当N和n变大的时候,样本数会变得很恐怖,超出计算机的计算范围。
因此有了Monte-Carlo——通过多次抽样的方式来模拟枚举的统计量的真实分布。
如果你常用非参数检验的话,留意一下”精确“选项里的第二项”Monte-Carlo“,和第三项“精确”;就是用这种方法来完成的。
希望我解释的够清楚。
对于你的问题,我用matlab帮你实现了。愿主保佑你知道怎么用Matlab(只抽了group1,group2的统计量你用总样本减group1能算出来):
a=[23 31 37 46 49 55 57 80];
selected=[];
not_selected=[];
for i=1:8
used=[];
for m=1:8
used=
if ismember(m,used)==0
for n=1:8
used=[used m];
if ismember(n,used)==0
for o=1:8
used=[used n]
if ismember(o,used)==0
temp=[i m n o];
selected=[selected;temp];
end
end
end
end
end
end
end
select=sort(selected,2);
permutation=unique(select,'rows');
group1=a(permutation);
|