楼主: han310
3977 9

[原创博文] SAS如何生成随机缺失机制下的100个数据集 [推广有奖]

  • 0关注
  • 1粉丝

本科生

72%

还不是VIP/贵宾

-

威望
0
论坛币
2515 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
844 点
帖子
44
精华
0
在线时间
159 小时
注册时间
2010-9-21
最后登录
2025-11-27

楼主
han310 在职认证  发表于 2012-6-3 11:43:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
具体: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
谢谢大虾们了,求救呀!期待着奇迹出现!
二维码

扫码加我 拉你入群

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

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

关键词:缺失机制 数据集 标准正态分布 正态分布 数据格式 正态分布 如何 奇迹

回帖推荐

MerlinZHOU 发表于7楼  查看完整内容

1 关于条件概率,你的条件概率的计算公式是什么; 2 这个论坛我不常来,如果有紧急需求,请去http://mysas.net/forum/找我。

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

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

板凳
han310 在职认证  发表于 2012-6-3 23:09:12
还请大虾们多多帮助,谢谢了

报纸
MerlinZHOU 发表于 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;

地板
han310 在职认证  发表于 2012-6-4 23:42:57
谢谢大侠!程序很好用,谢谢您!如果每个数据集想增加一个变量,给出条件概率P(r=1|x1,x2,x3),怎样修改程序呀,谢谢大侠了!{:soso_e183:}

7
MerlinZHOU 发表于 2012-6-5 21:31:42

1 关于条件概率,你的条件概率的计算公式是什么;
2 这个论坛我不常来,如果有紧急需求,请去http://mysas.net/forum/找我。


8
raymonica 发表于 2012-6-6 03:14:30
good to know, thanks

9
han310 在职认证  发表于 2012-6-7 10:36:39
大侠你好!谢谢大侠!具体问题: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
现在问题想复杂化:
每个数据集增加一个变量是一个条件概率P(R=1|X1,X2,X3),用logistic回归计算,这里R=0时表示个体缺失,P(R=0|X1,X2,X3)=1-P(R=1|X1,X2,X3),表示X1,X2,X3给定时,个体发生缺失的概率。谢谢大侠了,期待您的回复。我的qq:674606566,谢谢大侠!

10
arnoldsw 发表于 2012-6-7 17:46:56
这个拿excel做是不是也很方便,粘贴50次就行了,哈哈

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 22:10