bootstrap算法
少量样本 --> 随机生成B(B>1000)个样本
1)非参数Bootstrap方法
(1)估计量的标准误差
e.g: 通过少量的样本,以放回抽样的方式取样得到n个样本,每个样本的中位数为
B(i),i=1,2,...,n
B(i),i=1,2,...,n
B(i),i=1,2,...,n
再记录初始样本的中位数
b
b
b
则中位数估计的标准误差为
σ=1n∗∑(B(i)−b)2,i=1,2,...n
\sigma = \sqrt{\frac{1}{n}*\sum(B(i)-b)^2},i=1,2,...n
σ=n1∗∑(B(i)−b)2,i=1,2,...n
matlab函数:
clc,clear
a = [1,3,45,21,43] %输入原始样本
% = quantille(a',0.5) %求矩阵a每一行的中位数
% c = std(zw) %计算中位数标准差的Bootstrap估计
%计算各个Bootstrap样本的中位数
B = bootstrp(1000,@(x)quantile(x,0.5),a)
c = std(b) %计算中位数标准差
(2)估计量的均方误差的Bootstrap方法
e.g:通过少量的样本,作为原始样本,再通过随机取样出n个样本,记原始样本的中位数为
M
M
M
再计算生成的各个样本的中位数记为
D(i),i=1,2,...,n
D(i),i=1,2,...,n
D(i),i=1,2,...,n
记
R=R(X)=(D(i)−M)2,i=1,2,...,n
R=R(X)=(D(i)-M)^2,i=1,2,...,n
R=R(X)=(D(i)−M)2,i=1,2,...,n
需估计R(X)的平均值,这n个数的平均值为
1n∗∑(D(i)−M)2,i=1,2,...,n
\frac{1}{n}*\sum (D(i)-M)^2,i=1,2,...,n
n1∗∑(D(i)−M)2,i=1,2,...,n
即得均方误差得Bootstrap估计值,
matlab代码如下:
clc,clear
a = [.....]
b = bootstrap(10000,@(x)quantile(x,0.5),a)
c = mean((b-quantile(a,0.5)).^2) %求均方误差
(3)Bootstarp置信区间
未知参数得Bootstrap置信区间方法,求出原始样本均值u,通过抽样抽取n个样本,求出每个样本的均指,将n个样本均值从小到大排列,通过置信度筛选置信区间的下限与上限。
2)参数Bootstrap方法
通过最大似然估计参数,再进行非参数Bootstrap方法。