SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1119|回复: 3
打印 上一主题 下一主题

请教有关SAS产生随机数的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-3-17 21:45:28 | 只看该作者

请教有关SAS产生随机数的问题

第一次用SAS这个软件,由于时间紧迫,临时突击,迷糊!
请教大家,
    随机变量a的取值如果有十个(a1,a2,a3,...)
           随机变量b 的取值也有十个(b1,b2,b3,...)
   如何利用sas,将a,b的取值任意组合,一千次,得Y=a^2+b^3的分布啊?
万分感谢 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-3-22 02:37:23 | 只看该作者

Re: 请教有关SAS产生随机数的问题

This approach is nasty but it gets the job done. I have a hard time to find other ways to do it, someone else here could have a better idea. Hope this helps and good luck.

/* Get all combinations between a and b */
proc iml;
a={1 2 3 4 5 6 7 8 9 10 };
b={11 12 13 14 15 16 17 18 19 20};
allcomb = j(100,2,1);
do i=1 to 10;
   ai=a[1,i];
do j=1 to 10;
   aj=b[1,j];
allcomb[10*(i-1)+j,1]=ai;
allcomb[10*(i-1)+j,2]=aj;
end;
end;
create comb from allcomb[colname={'a' 'b'}];
append from allcomb;
quit;

/* Randomly sample the combinaion 1000 times with replacement */
proc surveyselect data=comb method = urs sampsize = 1000
   rep=1 seed=12345 out=sampling;
   id a b;
run;

/* Output the completed dataset */
data allsamples;
  set sampling;
  do i = 1 to numberhits;
    output;
  end;
  drop i numberhits;
run;

/* calculate Y */
data yvalue;
set allsamples;
  Y = a**2 + b**3 ;
run;

ods html;
ods graphics on;
proc univariate data=yvalue plot;
var y;
run;
ods graphics off;
ods html close;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-4-1 14:26:38 | 只看该作者

Re: 请教有关SAS产生随机数的问题

谢谢hotea, 你的帖子给了我很大的帮助,真的很感谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-4-2 03:42:17 | 只看该作者

to belleyang

You are quite welcome!!

YZ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 16:22 , Processed in 0.067743 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表