全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
9298 7
2016-02-20
bootstrap方法需要反复地抽样,我写程序的时候抽样用的是sample这个函数(当然,replace=T)
我想请问,用for循环加上sample函数重复抽样,跟用bootstrap程序包有什么区别吗
这样说可能不太清楚,那么我举两个小例子:有一个正态分布的总体,假设我不知道它的均值和标准差是多少,但是我从里面随机抽取了一个样本,要用这个样本去估计总体的均值和标准差
小程序1:
x<-rnorm(1000,100,15)
resultm<-rep(0,times=1000)
resultsd<-rep(0,times=1000)
for(b in 1:1000){
y<-sample(x,1000,replace=T)
resultm[b]<-mean(y)
resultsd[b]<-sd(y)
}
mean(resultm);mean(resultsd)

小程序2:
library(bootstrap)
x<-rnorm(1000,100,15)
a<-sample(x,1000,replace=T)
theta<-function(a){
b<-mean(a)
c<-sd(a)
return(c(b,c))
}
result<-bootstrap(a,1000,theta)
mean(result$thetastar[1,]);mean(result$thetastar[2,])

这两个小程序有没有什么不同?不同在哪里?这个问题困扰了我很久,还望各路大神不吝赐教
PS:这两个小程序是随手写的,怕我问题没说清楚加以说明而已,没有考虑到估计方法问题
二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-20 18:43:59
发出来的时候不知道为什么第二段程序最后一句字体有点问题……
二维码

扫码加我 拉你入群

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

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

2016-2-21 09:09:27
小程序2中a<-sample(x,1000,replace=T)是对样本X的在抽样,会导致在result<-bootstrap(a,1000,theta)用bootstrap对a抽样时不能有反应样本的所有信息
二维码

扫码加我 拉你入群

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

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

2016-2-21 09:41:48
第二段程序里面直接对x用bootstrap就和第一个程序一样了
二维码

扫码加我 拉你入群

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

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

2016-2-21 21:57:47
zhou1_20 发表于 2016-2-21 09:09
小程序2中a
第一段程序里面虽然用了for循环,但是也是对样本x进行抽样呀

所以两者区别在哪里……我不太明白
二维码

扫码加我 拉你入群

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

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

2016-2-21 22:01:30
qoiqpwqr 发表于 2016-2-21 09:41
第二段程序里面直接对x用bootstrap就和第一个程序一样了
您的意思是改成“result<-bootstrap(x,1000,theta)”这样吗?
但是我第一段程序里面是对x使用sample函数进行抽样的啊,我第一段程序里面只从总体里面抽取了一个样本x,其他都是对x进行重复抽样,如果这样改的话第二段程序不就从总体产生了很多个样本,跟第一个不同了吗?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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