楼主: funwin
7314 37

有谁知道 如何用宏语言实现bootstrap resampling? [推广有奖]

  • 0关注
  • 2粉丝

硕士生

85%

还不是VIP/贵宾

-

威望
0
论坛币
177 个
通用积分
0
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
2256 点
帖子
192
精华
0
在线时间
131 小时
注册时间
2007-11-7
最后登录
2016-1-22

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有谁知道 如何用宏语言实现bootstrap resampling?

假如样本如下:
co
date
resid
resid_boot1
……..
resid_boot1000
10001
200501
0.00865



10001
200502
-0.00635



…..
…..
……



10001
200812
0.00025



10006
200207
0.00358



10006
200208
-0.00254



…..
…..
…..



10006
200612
0.00098



……
……
…….




现在,想对每家公司coresid进行有放回的再抽样,比如1000148obs,就有放回的抽取48次得到一组新的resid_boot1; 10006公司,有54obs,就有放回的抽取54次也得到一组新的resid_boot1…….以此类推,对所有公司都进行一遍。
然后再重复一遍,形成resid_boot2……,以此类推,进行1000遍。

不知上述步骤用SAS如何进行?好像要用到%MACRO 语句,哪位高人指点一下!?
万分感激!!

二维码

扫码加我 拉你入群

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

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

关键词:Resampling Bootstrap Sampling Bootstra boots 语言 Bootstrap Resampling

沙发
horace_chen 发表于 2010-4-6 08:41:24 |只看作者 |坛友微信交流群
http://www.pinggu.org/bbs/thread-542652-1-1.html

不知道是不是楼主要找的

使用道具

藤椅
funwin 发表于 2010-4-6 09:44:08 |只看作者 |坛友微信交流群
非常感谢,下载下来,好好看看。好像语句很复杂。
不知道我所需要的完成的这个事,是否要这么复杂的句子?

使用道具

板凳
nkwilling 发表于 2010-4-6 12:44:43 |只看作者 |坛友微信交流群
bootstrapping resampling只是一个抽样方法,SAS里面可以用MACRO的DO循环语句加上PROC SURVEYSELECT过程步解决。

使用道具

报纸
funwin 发表于 2010-4-6 20:31:55 |只看作者 |坛友微信交流群
能否请版主 就我上面的例子 给出具体的code?
非常感激!

使用道具

地板
funwin 发表于 2010-4-6 21:39:38 |只看作者 |坛友微信交流群
刚看了些书,可以用下面code实现对一个公司的resid再抽样,但是这个句子不能识别公司,但又不能加by语句,如何是好?
data n.boots;
  do sampnum=1 to 1000;
    do i =1 to nobs;
      x=round(ranuni(0)*nobs);
     set n.mydata nobs=nobs point=x;
      output;
     end;
    end;
stop;
run;

使用道具

7
funwin 发表于 2010-4-6 21:40:01 |只看作者 |坛友微信交流群
刚看了些书,可以用下面code实现对一个公司的resid再抽样,但是这个句子不能识别公司,但又不能加by语句,如何是好?
data n.boots;
  do sampnum=1 to 1000;
    do i =1 to nobs;
      x=round(ranuni(0)*nobs);
     set n.mydata nobs=nobs point=x;
      output;
     end;
    end;
stop;
run;

使用道具

8
funwin 发表于 2010-4-6 21:40:25 |只看作者 |坛友微信交流群
刚看了些书,可以用下面code实现对一个公司的resid再抽样,但是这个句子不能识别公司,但又不能加by语句,如何是好?
data n.boots;
  do sampnum=1 to 1000;
    do i =1 to nobs;
      x=round(ranuni(0)*nobs);
     set n.mydata nobs=nobs point=x;
      output;
     end;
    end;
stop;
run;

使用道具

9
funwin 发表于 2010-4-6 21:41:36 |只看作者 |坛友微信交流群
附上我的数据,希望高手帮帮忙!

boots.xls

16 KB

使用道具

10
funwin 发表于 2010-4-6 22:54:59 |只看作者 |坛友微信交流群
将公司先编上序号t,然后将原数据分拆成t 个数据,进行再抽样,可以得到:假设only四个公司
%marco boot;
  data boots1 (where=(t=1))
          boots2 (where=(t=2))
          boots3 (where=(t=3))
           boots4 (where=(t=4));
  set mydata;
run;
data bootstrap;
   %do t=1 %to 4;
      do sample=1 to 1000;
         do i =1 to nobs;
          x=round(ranuni(0)*nobs);
         set boots&t  nobs=nobs point=x;
         output;
         end;
       end;
   %end;
stop;
run;
%mend;
%boot;
只是 抛砖引玉!如果现在我有2000家公司(t=1 to 2000), 怎么能将这个语句子写得更简单些???
data boots1 (where=(t=1))
          boots2 (where=(t=2))
          boots3 (where=(t=3))
           boots4 (where=(t=4));
  set mydata;
已有 1 人评分热心指数 收起 理由
crackman + 3 热情

总评分: 热心指数 + 3   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-25 10:15