全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3905 9
2012-06-03
具体:1.想生成100个数据集2.这100个数据集每个数据集的样本量是100,数据格式是分组数据W是分组变量取值0或1,其中W=1时,随机生成协变量X1服从N(12,1),X2服从B(0.6);W=0时,随机生成协变量X1服从N(8,0.25),X2服从B(0.3);响应变量Y=5*W+2*X1+3*X2+e,这里e服从标准正态分布;Y存在着缺失,缺失指示变量是R,这里缺失机制是随机缺失。
数据集1格式:
W     X1       X2         Y             R
0
....
0
....
1
谢谢大虾们了,求救呀!期待着奇迹出现!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-3 22:53:19
弱弱的问一下,w取值0或1,是随机的,还是有一定的数量要求,例如有40个取1,60个取0等。
还有你的N(8.0.25)指的是均值是8,方差是0.25吗,B(0.3)呢?
二维码

扫码加我 拉你入群

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

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

2012-6-3 23:07:25
这里每个数据集w=0和w=1个数相等,各为50个。N(8.0.25)指的是均值是8,方差是0.25,B(0.3)指的是发生概率为0.3的贝努力分布。谢谢您的关注和回复,祝好!
二维码

扫码加我 拉你入群

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

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

2012-6-3 23:09:12
还请大虾们多多帮助,谢谢了
二维码

扫码加我 拉你入群

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

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

2012-6-4 22:15:59

%let ss=20;
%let seed1=12345;
%let seed2=23456;
%let seed3=34567;

%macro ds;

data ith;
do m=1 to 100;
   output;
end;
run;

%do k =1 %to 100;

data ds&k;
   do i =1 to 100;
      if i<=50 then w=1;
          else w=0;
      e=rannor(&seed1);
      x1=8+0.5*rannor(&seed2);
      x2=ranbin(&seed2,1,0.3);
      y=5*w+2*x1+3*x2+e;
      output;
   end;
run;

proc surveyselect data=ith
  method=srs
  rep=1
  sampsize=&ss
  seed=&seed3
  out=samds;
  id _all_;
run;

data samds;
  set samds;
  n=_n_;
run;

%do w =1 %to &ss;
proc sql noprint;
  select m into :m
  from samds
  where n=&w;
quit;

data ds&k;
  set ds&k;
  if i=&m then y=.;
  if missing(y) then r=1;
  else r=0;
run;

%end;


%let seed1=%eval(12345+&k);
%let seed2=%eval(23456+&k);
%let seed3=%eval(34567+&k);

%end;


%mend;
%ds;
二维码

扫码加我 拉你入群

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

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

2012-6-4 23:42:57
谢谢大侠!程序很好用,谢谢您!如果每个数据集想增加一个变量,给出条件概率P(r=1|x1,x2,x3),怎样修改程序呀,谢谢大侠了!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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