全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件
2279 1
2014-11-28

蒙特—卡罗SAS随机数程序

正态分布

data random;

mu=1;

sigma=2;

seed=0;

do i=1 to 5;                                                                                                                           

x=mu+sigma*rannor(seed);

output;

end;

proc print data=random;

run;

均匀分布

data random;

a=0.05;

b=0.65;

seed=0;

do i=1 to 5;                                                                                                                           

x=a+(b-a)*ranuni(seed);

output;

end;

proc print data=random;

run;

正态分布N0.5,0.05)均匀分布(0.05,0.65

data random1;

do i=1 to 5;                                                                                                                           

x=0.5+0.05*rannor(0);

y=0.05+0.6*ranuni(0);

output;

end;

proc print data=random1;

run;

data random1;

do i=1 to 10;

x=0.5+0.05*rannor(0);

y=0.05+(0.65-0.05)*ranuni(0);

output;

end;

proc print data=random1;

run;

错误程序

data random;

y=0.5+0.05*rannor(0);

nit=40+10*rannor(0);

nic=40+10*rannor(0);

pit=0.05+0.6*ranuni(0);

xit=ranbin(0,nit,pit);         nit必须为整数

pic=pit*exp(y)/{1-pit+pit*exp(y)};  不可以出现大括号

xic=ranbin(0,nic,pic);

output;

end;

proc print data=random;

run;

取整

data random1;

do i=1 to 5;

y=0.5+0.05*rannor(0);

nit=int(40+10*rannor(0));

nic=int(40+10*rannor(0));

pit=0.05+0.6*ranuni(0);

output;

end;

proc print data=random1;

run;

可用程序1

data random;

do i=1 to 7;

y=0.5+1.0*rannor(0);

nit=int(40+10*rannor(0));

nic=int(40+10*rannor(0));

pit=0.05+0.6*ranuni(0);

xit=ranbin(0,nit,pit);   /*二项分布随机数*/

pic=pit*exp(y)/(1-pit+pit*exp(y));

xic=ranbin(0,nic,pic);

output;

end;

proc print data=random;

run;

可用程序2

data random;

do i=1 to 7;

y=0.5+1.0*rannor(0);

nit=int(40+10*rannor(0));

nic=int(40+10*rannor(0));

pit=0.05+0.6*ranuni(0);

xit=ranbin(0,nit,pit);

pic=pit*exp(y)/(1-pit+pit*exp(y));

xic=ranbin(0,nic,pic);

output;

end;

proc print data=random;

var y nit nic xit xic;

run;

可用程序3

data random;

do i=1 to 7;

y=0.5+1.0*rannor(0);

nit=int(40+10*rannor(0));

nic=int(40+10*rannor(0));

pit=0.05+0.6*ranuni(0);

xit=ranbin(0,nit,pit);

pic=pit*exp(y)/(1-pit+pit*exp(y));

xic=ranbin(0,nic,pic);

OR=log((xit/(nit-xit))/(xic/(nic-xic)));

S=1/(xit+0.5)+1/((nit-xit)+0.5)+1/(xic+0.5)+1/((nic-xic)+0.5);

output;

end;

proc print data=random;

var y nit nic xit xic OR S;

run;

data random;

do i=1 to 7;

yi=0.5+1.0*rannor(0);

nit=int(40+10*rannor(0));

nic=int(40+10*rannor(0));

pit=0.05+0.6*ranuni(0);

xit=ranbin(0,nit,pit);

pic=pit*exp(yi)/(1-pit+pit*exp(yi));

xic=ranbin(0,nic,pic);

si_square=1/(xit+0.5)+1/((nit-xit)+0.5)+1/(xic+0.5)+1/((nic-xic)+0.5);

wi=1/si_square;

output;

end;

proc print data=random;

run;

偏正态分布随机数

data random;

mu=1;

sigma=2;

seed=0;

do i=1 to 5;  

pi=acros(-1);

x=mu+sigma*sqrt(2*r*r/(pi*(1+r*r)))+sigma*sqrt(1-2*r*r/(pi*(1+r*r)))*rannor(seed);

output;

end;

proc print data=random;

run;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-11-29 13:53:24
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群