楼主: stone_nju
5322 5

[问答] SAS如何生成一组均为0到1之间的随机数,且该组随机数相加和为1 [推广有奖]

  • 1关注
  • 0粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
40 点
帖子
2
精华
0
在线时间
86 小时
注册时间
2014-6-16
最后登录
2017-3-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,求大神帮助!
二维码

扫码加我 拉你入群

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

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

关键词:随机数 求大神帮助 如何

沙发
fanyonghui 发表于 2014-11-28 18:17:13 |只看作者 |坛友微信交流群
从0,1之间随机抽取n个数x_1, x_2, ..., x_n. 令s=x_1+x_2+...+x_n. y_i=x_i/s, i=1,2,...,n.

使用道具

藤椅
teqel 发表于 2014-11-28 22:10:33 来自手机 |只看作者 |坛友微信交流群
是不是先求随机数,然后除以它们的和?

使用道具

板凳
jingju11 发表于 2014-11-29 15:01:36 |只看作者 |坛友微信交流群
teqel 发表于 2014-11-28 22:10
是不是先求随机数,然后除以它们的和?
如果是这样,生成的数是否随机不得而知,但是他的取值其实是从0~2/n, 当N很大。n 是样本数。京剧

使用道具

报纸
我女儿超靓 发表于 2014-11-29 16:14:17 |只看作者 |坛友微信交流群
data random;
a=0;
b=1;
seed=0;
do i=1 to 5;                                                                                                                           
x=a+(b-a)*ranuni(0);
y+x;(y是对x求和)
output;
end;
data tq_y;(提取数据集random的关于y的最后一行的新的一行数据集tq_y)
set random(firstobs=5 obs=5);
keep y;
run;
data kc_y;(把提取出的一行数据集扩充成五行)
set tq_y tq_y tq_y tq_y tq_y;
run;
data random1;(要求的结果)
set random;
set kc_y;
xi=x/y;
sum+xi;
run;
proc print data=random1;
var x y sum xi;
run;

使用道具

地板
我女儿超靓 发表于 2014-11-29 16:15:11 |只看作者 |坛友微信交流群
我试过了,对的,我也是初学者,就是方法可能不够简便。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 10:50