全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5162 6
2014-08-02
第一次用boot函数,还不太懂。现在想要计算如下Diff函数的频数分布。程序总是报错,新手改不好。。。
复制代码




二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-2 16:20:16
不懂,看看
二维码

扫码加我 拉你入群

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

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

2014-8-4 15:42:58
不知道楼主这个函数的目的是什么。
看代码的话第14行data似乎应该改成d。
最后返回值是density(d),函数本身用不改变d,这样的话其实第6行到第25行都是没用的。
二维码

扫码加我 拉你入群

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

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

2014-8-5 10:36:35
mymei 发表于 2014-8-4 15:42
不知道楼主这个函数的目的是什么。
看代码的话第14行data似乎应该改成d。
最后返回值是density(d),函数本 ...
额。复制错了,应该是
b<-data.frame(a$profit)

library(boot)  
beta<-function(data,indices){  
d<-data[indices,]
Max<-0;
Diff<-0;
SUM<-0;
Diff=matrix(0,1,839);
Max=matrix(0,1,840);
SUM=matrix(0,1,839);

for(i in 1:838){
                  SUM[1,i+1]=SUM[1,i]+d[i+1,1]
                  }

  for(j in 1:839){
                   if(SUM[1,j]>Max[1,j])
                   {Diff[1,j]<-0
                   Max[1,j+1]<-SUM[1,j]
                   } else {
                   Diff[1,j]<-Max[1,j]-SUM[1,j]
                   Max[1,j+1]<-Max[1,j]
                   }
                  }
            
return(density(Diff))  
}  

result<-boot(data=b,statistic=beta,R=1000)  
boot.ci(result);
二维码

扫码加我 拉你入群

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

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

2014-8-5 19:31:42
axiaohuohu 发表于 2014-8-5 10:36
额。复制错了,应该是
b
还是不明白你的目的。是否能说得更清楚点?
boot函数是对某个统计量进行bootstrap,但beta函数返回的不是统计量,而是个list,因此会出错。
参看帮助文档:
statistic: A function which when applied to data returns a vector containing the statistic(s) of interest.
二维码

扫码加我 拉你入群

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

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

2014-8-6 10:45:34
mymei 发表于 2014-8-5 19:31
还是不明白你的目的。是否能说得更清楚点?
boot函数是对某个统计量进行bootstrap,但beta函数返回的不是 ...
想要得到定义的Diff数据的频率分布。所以这里beta函数只能返回统计量,不能是频率分布的list是吗?这里出错了是吧?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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