博客
关于我
Introduction of moving block bootstrap (MBB)algorithm
阅读量:243 次
发布时间:2019-03-01

本文共 2880 字,大约阅读时间需要 9 分钟。

Because we can not use usual bootstrap sampling method to get subsamples from time series dataset, then the MBB was proposed to address this issue.

Suppose we have the time series following :
X 1 X_1 X1, X 2 X_2 X2, . . . . .... ...., X 10 X_{10} X10. Note that you can extend the footnote with other number or a symbol.
First step is to split the series into several blocks in which one should figure out the size of each block. Assume we let the size of each block equal to 2, then our blocked data would look like :

X 1 , X 2 ⏞ b l o c k   1 , X 3 , X 4 ⏞ b l o c k   2 , . . . . . . X 9 , X 10 ⏞ b l o c k   5 \overbrace{X_1,X_2}^{block\,1},\overbrace{X_3,X_4}^{block\,2},......\overbrace{X_9,X_{10}}^{block\,5} X1,X2 block1,X3,X4 block2,......X9,X10 block5

with the above blocks we get, now we can apply the bootstrap algorithm by taking a random sample of the blocks with replacement. The order in which the blocks are drawn is the position that they are placed in the bootstrap series. Hence, one probably blocks might be

b l o c k   1 , b l o c k 3   , b l o c k   5 , b l o c k   1 , b l o c k   2 block\,1, block3\,, block \,5, block\,1,block\,2 block1,block3,block5,block1,block2
and the corresponding original time series is
X 1 , X 2 ,       X 5 , X 6       X 9 , X 10       X 1 , X 2 ,       X 3 , X 4 ,       X_1,X_2,\,\,\,\,\,X_5,X_6\,\,\,\,\,X_9,X_{10}\,\,\,\,\,X_1,X_2,\,\,\,\,\,X_3,X_4,\,\,\,\,\, X1,X2,X5,X6X9,X10X1,X2,X3,X4,

These are the basic process of MBB for time series data. This can help us to get a new sample series with similar short term dependence data structure to the original data.

In python, you can rely on the pkg of “arch”, following I present a simple toy code from the with a minor revision.

from arch.bootstrap import MovingBlockBootstrap from numpy.random import RandomState  from numpy.random import standard_normalimport numpy as npy = standard_normal((6, 1))# to generate a time series with standard norm distribution.bs = MovingBlockBootstrap(2, y,random_state=RandomState(1234))# 2 is block size, y is your time series data, random_state #                                                        														is for reproducibility when requiredi=0bs_x=[ ] # an empty list to store the bootstrap series#here for is to look what the bootstrap looks like for each iteration, in our demonstrated case, we do boostrap only for 2 times.for data in bs.bootstrap(2):    print(data)    bs_y.append(data[0][0])     print(bs_y)    i=i+1# fc is function to compute the bootstrap series mean value.,you can replace it with your own definitiondef fc(a):    return a.mean(0)results = bs.apply(fc,2) ###to apply  a function defined by yourself to the bootstrap replicated data, "2" means apply the fc 2times to calculate the average of the boostrap data. of course , you can figure it with any number you want. print(results)

Thx for ur reading.

转载地址:http://uaet.baihongyu.com/

你可能感兴趣的文章
mysql事务理解
查看>>
Mysql全局优化参数
查看>>
MySQL函数简介
查看>>
mysql函数遍历json数组
查看>>
MySQL函数(转发)
查看>>
mysql分区表
查看>>
MySQL分层架构与运行机制详解
查看>>
mysql分库分表中间件简书_MySQL分库分表
查看>>
MySQL分库分表会带来哪些问题?分库分表问题
查看>>
MySQL分组函数
查看>>
MySQL分组查询
查看>>
Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间
查看>>
mysql创建函数报错_mysql在创建存储函数时报错
查看>>
mysql加强(5)~DML 增删改操作和 DQL 查询操作
查看>>
MySQL基础day07_mysql集群实例-MySQL 5.6
查看>>
Mysql基础命令 —— 系统操作命令
查看>>
MySQL基础学习总结
查看>>
mysql基础教程三 —常见函数
查看>>
mysql基础教程二
查看>>
mysql基础教程四 --连接查询
查看>>