全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3883 6
2011-09-11
请教版上SAS达人, 我原来有五个obs, 两个var,
想用这五组数 生成新的一个有五个数的var, code 如下,但是为啥生成25个呢? 我理解是可能一个e用了五次,但是出来每个e都是不同的。 想不明白啊想不明白。 多谢解答了!
data insurance;
input x1 x2;
datalines;
1.2 2.2
1.3 2.3
1.4 2.4
1.5 2.5
1.6 2.6
;
run;

data sim;
set insurance;
call streaminit(84732);
do sim=1 to 5;
e=rand('normal',0,1);
y_sim=2 -3*x1+ 4*x2+e;
output;
end;
run;

proc print data=sim;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2011-9-11 13:39:00
"data sim;
set insurance;
call streaminit(84732);
do sim=1 to 5;"
数据insurance有5个观测值,每个观测值对应生成一组随机数,
对比下
data sim;
call streaminit(84732);
do sim=1 to 5;
set insurance;
...
先定义生成随机数,在读入数据
二维码

扫码加我 拉你入群

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

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

2011-9-12 01:14:17
yugao1986 发表于 2011-9-11 13:39
"data sim;
set insurance;
call streaminit(84732);
非常感谢回答。 我试了一下,得到一些缺失值。不知道为什么, 还是得到25个obs,而且前五个的x1 x2 和sim是缺失值。
二维码

扫码加我 拉你入群

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

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

2011-9-12 01:27:15
yugao1986 发表于 2011-9-11 13:39
"data sim;
set insurance;
call streaminit(84732);
我问了另一个人。他告诉我SAS看到我有五个obs,就会自动用e填补剩下的四个。
我的理解是, 在SAS编译的时候,有一个expression e=rand('normal', 0, 1), 然后有一个equation
y_sim=2 -3*x1+ 4*x2+e; 它就用 e=rand('normal', 0, 1) 代入到五个obs中,但是这个时候并没有生成随机数,直到执行过程run statement被执行了。 因为这个过程在do loop里面,所以被执行了5次,所以总共产生25个完全不同的e。 不知道我的理解对不对。
二维码

扫码加我 拉你入群

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

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

2011-9-12 02:17:18
nkxhm 发表于 2011-9-12 01:27
我问了另一个人。他告诉我SAS看到我有五个obs,就会自动用e填补剩下的四个。
我的理解是, 在SAS编译的时 ...
说几句话:
在这里,用random number 生成方程来说明sas执行的逻辑或许有些不妥当,因为这一类方程具备其特殊性。比如说,call streaminit这个routine其实只执行一次(或者说,执行多次跟执行一次是一样的),换句话说,在同一个data步里,你无法更换初始的seed。值得说明的是,seed更换也是没有必要的。因为更换seed往往适得其反,有可能无法保障生成数字的随机性。这种的误解类似于使用seed=0,好像随机的seed使得random number更加‘random’。
京剧
二维码

扫码加我 拉你入群

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

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

2011-9-16 05:56:31
jingju11 发表于 2011-9-12 02:17
说几句话:
在这里,用random number 生成方程来说明sas执行的逻辑或许有些不妥当,因为这一类方程具备其 ...
非常感谢您的解答!其实不是很理解这里call streaminit()的作用, 如果用rand function 生成随机数的时候, 如果用同样的seed值 会产生类似的数吗? seed的作用是什么? 非常感谢!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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