楼主: lion果
12021 10

[程序分享] R语言中boot函数的小小小疑问!!! [推广有奖]

  • 0关注
  • 0粉丝

本科生

52%

还不是VIP/贵宾

-

威望
0
论坛币
137 个
通用积分
2.0004
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
492 点
帖子
47
精华
0
在线时间
119 小时
注册时间
2018-4-12
最后登录
2020-6-15

30论坛币
求教 关于R语言中的boot函数:
boot(data,statistic,R,...)

statistic= function(dat,ind)
这里的dat是每次从data中抽取一个bootstrap样本吗?
如果R设为100,那么,这100次的dat和ind是都不同的吗?

下面代码是想从bootstrap样本中进行Monte Carlo模拟,请问这样子对吗???
set.seed(1234)
theat.acf_95 <- function(dat,ind){
  acfood1 <- dat[ind,1]*0.3
  acfood4 <- dat[ind,4]*0.5
  su <- (acfood1+acfood4)/21.32

  acf1 <- sample(dat[,1],100000,replace = T)*0.3
  acf4 <- sample(dat[,4],100000,replace = T)*0.5
  s <- (acf1+acf4)/21.32

  S <- c(su,s)
  a <- quantile(S,0.95)
  a
}
boot.obj1_95 <- boot(data=ACfood,statistic=theat.acf_95,R=2000)

最佳答案

Whig 查看完整内容

这样不对,重抽样是通过d
关键词:boot R语言 Monte Carlo Bootstrap statistic

回帖推荐

Whig 发表于6楼  查看完整内容

这样不对,重抽样是通过d

Whig 发表于3楼  查看完整内容

每次从data中抽取一个bootstrap样本,每次的dat和ind都不一样。
沙发
Whig 在职认证  发表于 2020-3-21 15:22:50 |只看作者 |坛友微信交流群
lion果 发表于 2020-3-21 18:27
请问 “d
这样不对,重抽样是通过d <- dat[ind,]实现的,重抽样样本你该用d,不是用dat
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lion果 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
lion果 发表于 2020-3-21 15:31:41 |只看作者 |坛友微信交流群
各位大佬看看这里!!!

使用道具

板凳
Whig 在职认证  发表于 2020-3-21 17:27:04 |只看作者 |坛友微信交流群
每次从data中抽取一个bootstrap样本,每次的dat和ind都不一样。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lion果 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

报纸
lion果 发表于 2020-3-21 18:27:29 |只看作者 |坛友微信交流群
Whig 发表于 2020-3-21 17:27
每次从data中抽取一个bootstrap样本,每次的dat和ind都不一样。
请问 “d <- dat[ind,]”放着但没用可以吗?比如下面这样?
theat.acf_95 <- function(dat,ind){
  d <- dat[ind,]
  acf1 <- sample(dat[,1],1,replace = T)*0.3
  acf4 <- sample(dat[,4],1,replace = T)*0.5
  acf5 <- sample(dat[,5],1,replace = T)*0.3
  acf6 <- sample(dat[,6],1,replace = T)*2.2
  acf8 <- sample(dat[,8],1,replace = T)*21.0
  acf9 <- sample(dat[,9],1,replace = T)*7.9
  acf11 <- sample(dat[,11],1,replace = T)*5.4
  s <- (acf1+acf4+acf5+acf6+acf8+acf9+acf11)/21.32
  a <- quantile(s,0.95)
  a
}

使用道具

地板
lion果 发表于 2020-3-21 18:57:09 |只看作者 |坛友微信交流群
Whig 发表于 2020-3-21 17:27
每次从data中抽取一个bootstrap样本,每次的dat和ind都不一样。
请问每次新抽的dat的样本容量,和data的一样吗?

使用道具

7
lion果 发表于 2020-3-23 13:22:16 |只看作者 |坛友微信交流群
Whig 发表于 2020-3-22 11:05
这样不对,重抽样是通过d
意思是 d 就是重抽样出来的一个bootstrap样本吗?
请问下面这样对吗?
theat.acf_95 <- function(dat,ind){
  d <- dat[ind,]
  acf1 <- sample(d[,1],1,replace = T)*0.3
  acf4 <- sample(d[,4],1,replace = T)*0.5
  acf5 <- sample(d[,5],1,replace = T)*0.3
  acf6 <- sample(d[,6],1,replace = T)*2.2
  acf8 <- sample(d[,8],1,replace = T)*21.0
  acf9 <- sample(d[,9],1,replace = T)*7.9
  acf11 <- sample(d[,11],1,replace = T)*5.4
  s <- (acf1+acf4+acf5+acf6+acf8+acf9+acf11)/21.32
  a <- quantile(s,0.95)
  a
}

使用道具

8
Whig 在职认证  发表于 2020-3-23 18:14:39 |只看作者 |坛友微信交流群
lion果 发表于 2020-3-23 13:22
意思是 d 就是重抽样出来的一个bootstrap样本吗?
请问下面这样对吗?
theat.acf_95
是的,重抽样体现在ind上了

使用道具

9
lion果 发表于 2020-3-23 22:10:48 |只看作者 |坛友微信交流群
已解决!

使用道具

10
lion果 发表于 2020-3-24 12:07:49 |只看作者 |坛友微信交流群
Whig 发表于 2020-3-23 18:14
是的,重抽样体现在ind上了
万分感谢!!!

使用道具

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

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

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

GMT+8, 2024-4-28 12:07