楼主: wdxmahone
2699 5

[原创博文] sas生成确定概率的随机数 [推广有奖]

  • 0关注
  • 1粉丝

已卖:348份资源

硕士生

40%

还不是VIP/贵宾

-

威望
0
论坛币
12568 个
通用积分
0
学术水平
2 点
热心指数
3 点
信用等级
2 点
经验
3518 点
帖子
121
精华
0
在线时间
155 小时
注册时间
2010-1-11
最后登录
2022-9-4

楼主
wdxmahone 发表于 2012-2-2 10:10:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位大侠好,现在有一个变量可以取1000个值,分别对应1000个概率值,储存在一个数据集里面,想随机生成一列数,符合上述的概率分布,sas怎么样可以做到啊?

谢谢哈!
二维码

扫码加我 拉你入群

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

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

关键词:随机数 概率分布 各位大侠 数据集 怎么样

沙发
zhangzachary 发表于 2012-2-2 11:34:07
  1. data a;
  2. do a=1 to 4;
  3. p=a/10;
  4. output;
  5. end;
  6. run;

  7. data aa;
  8. set a;
  9. pp+p;
  10. run;

  11. %macro ff(n);
  12. %do i=1 %to &n.;
  13. %let x=%sysfunc(ranuni(0));
  14.   data aa;
  15.   set aa;
  16.   retain xx s 0;
  17.   xx=&x.;
  18.   if xx<pp then s=1;
  19.   run;
  20.   data aa;
  21.   set aa;
  22.   by s;
  23.   if first.s and s=1 then do;
  24.     put xx=  a=  / ;
  25.   end;
  26.   drop xx s;
  27.   run;
  28. %end;
  29. %mend ff;

  30. %ff(10)
复制代码
先来看个简单的情况:
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

藤椅
zhangzachary 发表于 2012-2-2 11:38:05
dataset a 里面 a 是变量值,p 是概率值。在 log 里 put 出来的 a 就是你要的符合上述概率分布的随机变量值。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

板凳
jingju11 发表于 2012-2-2 13:23:42
tabled distn, 对应一千个取值和概率,概率和为1.
proc sql; select prob into :plist separated by ',' from ...; quit;
data data2;
do i =1 to 1e5;
x =rand('table', &plist)
;...; run;
生成的x即为原数据的行号_N_.
根据行号进行索引。京剧

报纸
wdxmahone 发表于 2012-2-2 14:17:34
zhangzachary 发表于 2012-2-2 11:34
先来看个简单的情况:
谢谢,这种想法很不错!

地板
wdxmahone 发表于 2012-2-2 14:18:08
jingju11 发表于 2012-2-2 13:23
应该是tabled distn, 对应一千个取值和概率,概率和为1.
proc sql; select prob into :plist separated b ...

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 05:41