/*B(n,p),随着实验次数的增加,二项分布式渐进服从N(np,np(1-p))的,
这里以多元正态分布来生成多元二项分布*/
proc iml;
n={100 50 100 50};/*表示每个二项分布的n参数*/
p={0.2 0.5 0.6 0.8};/*表示每个二项分布的p*/
mean=n#p;/*对应正态分布的均值*/
var=n#p#(1-p);/*对应正态分布的方差*/
cov={0 1 2.1 1.2,
1.0 0 .5 -.2,
2.1 .5 0 2.0,
1.2 -.2 2.0 0} +diag(repeat(var,4,1));
/*设定协方差矩阵,非对角线元素表示多元之间的相关关系,同时
对角线元素应等于对应的方差*/
num=10;/*观测的数目*/
random=randnormal(num,mean,cov);/*生成多元正态*/
final=0<>round(random)><repeat(n,num,1);
/*对正态分布取整,同时保证每一列的最大值,不能超过对应的n,且同时要大于0*/
print final;
quit;