博客
关于我
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/

你可能感兴趣的文章
Netty工作笔记0033---Netty概述
查看>>
Netty工作笔记0034---Netty架构设计--线程模型
查看>>
Netty工作笔记0035---Reactor模式图剖析
查看>>
Netty工作笔记0036---单Reactor单线程模式
查看>>
Netty工作笔记0045---异步模型原理剖析
查看>>
Netty工作笔记0046---TaskQueue自定义任务
查看>>
Netty工作笔记0050---Netty核心模块1
查看>>
Netty工作笔记0051---Netty核心模块2
查看>>
Netty工作笔记0052---Pipeline组件剖析
查看>>
Netty工作笔记0055---Unpooled应用实例1
查看>>
Netty工作笔记0056---Unpooled应用实例2
查看>>
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0058---Netty群聊系统客户端
查看>>
Netty工作笔记0059---Netty私聊实现思路
查看>>
Netty工作笔记0060---Netty心跳机制实例
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>
Netty工作笔记0061---Netty心跳处理器编写
查看>>
Netty工作笔记0063---WebSocket长连接开发2
查看>>
Netty工作笔记0065---WebSocket长连接开发4
查看>>
Netty工作笔记0066---Netty核心模块内容梳理
查看>>