SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

楼主: shiyiming
打印 上一主题 下一主题

求助 利用SAS实现 cluster bootstrap

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2011-2-24 20:27:07 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to jingju

I tried your code
but it didn't work, is that available for 9.2 ?? mine is 9.1

here is the log:

   proc surveyselect data =class out =SampleOut reps =10 n =10 method =urs seed =555;
9       samplingunit cluster;
        ------------
        180
ERROR 180-322: 语句无效或未按正确顺序使用。
10   run;


Thanks!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2011-2-24 21:11:26 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to caicaisas
你的意思似乎是要先对CLUSTER做一个URS,然后给定CLUSTER号码以后,对CLUSTER内部的ID再做URS,对不对?
刚吃早饭,目前只能想到一个很笨的方法,容我想想有没有更有效率的。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2011-2-24 21:55:02 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to OL:

[quote:15z1w7rs](samplingunit) ....is that available for 9.2 ?? mine is 9.1[/quote:15z1w7rs]

You are right!

[quote:15z1w7rs]Beginning with SAS/STAT 9.22 in SAS 9.2 TS2M3, use the SAMPLINGUNIT or CLUSTER statement to name variables that identify the sampling units as groups of observations (clusters).[/quote:15z1w7rs]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
14#
 楼主| 发表于 2011-2-24 23:10:44 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to OLO, 我不需要对cluster内的ID再做URS,但是在merge的时候出现了问题

BY the way , URS 是无放回抽样吗?
其实我要做的是有放回抽样
所以cluster做完之后有重复的值,导致merge的时候就出错了
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
15#
 楼主| 发表于 2011-2-25 23:40:44 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to caicaisas
URS=unrestricted sampling=有放回抽样
try the following code


data temp;
     do cluster=1 to 10;
            do id=1 to 40;
                   output;
                end;
         end;
run;

proc freq data=temp noprint;
     table cluster/out=cluster(drop=percent);
run;

proc surveyselect data=cluster  method=urs  sampsize=10 out=cluster_samp;
run;

data temp2;
     merge temp  cluster_samp;
         by cluster;
         if NumberHits>=1 then do;
            do seq=1 to NumberHits;   output; end;
         end;
run;

proc sort data=temp2; by cluster  seq; run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
16#
 楼主| 发表于 2011-2-26 18:24:23 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to OLO~

已经试出来了~~非常感谢!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
17#
 楼主| 发表于 2011-3-3 22:44:14 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to oloolo
这段代码确实在功能上实现了cluster bootstrap~
但是关于cluster bootstrap 不知道还有没有改进的可能?程序最后只实现了一个样本,如果我想得到B个bootstrap的样本,就需要套一个宏,将它跑B次,然后把得到的B个数据集append在一起。这样特别不高效,因为我还需要把这个结果套在另一个宏里面,所以今天一直在想如何能不用宏解决多次的cluster bootstrap, 不过真的水平有限,一直没弄出来,而且我的9.2 确实没有 samplingunit 功能。。。。可能还没到9.22。。。所以还得再次请教各位高手了!!
不胜感激啊!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
18#
 楼主| 发表于 2011-3-4 11:53:26 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to caicaisas
very simple
add one more loop for BY variable
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
19#
 楼主| 发表于 2011-3-5 08:31:54 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

to oloolo
但是最后merge的时候出现问题了,假设sampnum是指示sample的变量, by sampnum cluster,会出问题,因为temp这个原数据里面没有sampnum这个变量,所以merge不上。。。。
唉,真的比较愚笨 <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> ,,,能不能稍微展示一下code?  多谢了!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
20#
 楼主| 发表于 2011-3-5 22:50:55 | 只看该作者

Re: 求助 利用SAS实现 cluster bootstrap

原始程序里利用index key来寻到cluster的方法的确很好,为什么不采用呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 11:12 , Processed in 0.088498 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表