全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4859 19
2011-08-17
悬赏 100 个论坛币 未解决
假设数据集中有变量X,含有10个观测,所谓stationary bootstra的方法是首先从这10个任意取一个观测,比如说是第6个观测,那么下一个观测的取法是这样设计的,以概率p(事先是给定的,比如说是0.4)取除第6个观测以外的其他9个观测,而以概率1-p取第7个观测,也就是在第一个观测的观测号上递增一个,如此类推,第三个观测是在第二个观测号上按照上述概率来选取,直到取10次为止,请问如何使用SAS来完成上述要求的程序。
二维码

扫码加我 拉你入群

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

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

全部回复
2011-8-17 22:40:05
用R很容易写bootstrap的程序,SAS里用MACRO也能实现
二维码

扫码加我 拉你入群

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

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

2011-8-17 23:26:53
data test;

array x{10};
do i=1 to 10;
x(i)=i*2;
end;

k=6;
y=x(k);
put  y= ;

do j=1 to 10;
p=0.4;
q=ranuni(1);
if q>p and k<10 then do;
  k+1;
  y=x(k) ;
  put  y= ;
  end;
else if q>p and k=10 then do;
  y=x(k) ;
  put  y= ;
  end;
else if q<=p then do;
  k=floor(ranuni(1)*9)+1;
  y=x(k);
  put y= ;
  end;
end;

run;

这里简单举出一个例子,更普遍的情况需要高手写成MACRO即可
二维码

扫码加我 拉你入群

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

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

2011-8-17 23:49:37
以概率p(事先是给定的,比如说是0.4)取除第6个观测以外的其他9个观测
应该还是从10个观测里取还是从剩余的9个里取?
二维码

扫码加我 拉你入群

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

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

2011-8-18 01:27:39
by my understanding:
复制代码
二维码

扫码加我 拉你入群

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

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

2011-8-18 06:57:15
jingju11 发表于 2011-8-18 01:27
by my understanding:
我的理解是应该从其他9个中取,你的程序我有的地方看不懂,能否给出注释一下。样本容量假设为10,按照上述抽取方法抽取10个观测就完成一次抽样,如果把上述抽样进行比如100次,则如何编写呢?do _n_ =1 by 1 while(_n_ <=N-1);

                        x1 =x;  

                        j =ranuni(1);

                        if j <=p then do;

                                x =ceil((N-1)*ranuni(1));

                                if x =x1 then x =N;  

                        end;

这部分我是没有看懂,_n_没有终止值吗,  if x =x1 then x =N; 的作用是什么?能否在IML中实现这个程序,拜托。

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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