Bootstrap 自助法

一、简介

Bootstrap是一个很通用的算法,用来估计标准误差、置信区间和偏差。由Bradley Efron于1979年提出,用于计算任意估计的标准误差。术语“Bootstrap”来自短语“to pull oneself up by one’s bootstraps” (源自西方神话故事“TheAdventures of Baron Munchausen”,男爵掉到了深湖底,没有工具,所以他想到了拎着鞋带将自己提起来)。

在统计学中,自助法(BootstrapMethod,Bootstrapping或自助抽样法)可以指任何一种有放回的均匀抽样,也就是说,每当选中一个样本,它等可能地被再次选中并被再次添加到训练集中。自助法能对采样估计的准确性(标准误差、置信区间和偏差)进行比较好的估计,它基本上能够对任何采样分布的统计量进行估计。

Bootstrap有两种形式:非参数bootstrap和参数化的bootstrap,但基本思想都是模拟。参数化的bootstrap假设总体的分布已知或总体的分布形式已知,可以由样本估计出分布参数,再从参数化的分布中进行再采样,类似于MC。非参数化的bootstrap是从样本中再抽样,而不是从分布函数中进行再抽样。

二、非参数化Bootstrap

基本思想是:假设是我们的估计量为,样本大小为N,从样本中有放回的再抽样N个样本,原来每一个样本被抽中的概率相同,均为1/N,得到新的样本我们称为Bootstrap样本,重复B次之后我们得到B个bootstrap样本集,在每一个样本集上都有对应的估计量,对于B个,我们可以计算得到标准误,置信区间,偏置等。

三、参数化Bootstrap

和非参数化Bootstrap不同的地方在于总体分布函数的形式是已知的,需要根据样本估计参数  (参数估计),这样得到经验分布函数,从经验分布函数中再采样得到Bootstrap样本,非参数化Bootstrap是从原始样本中再抽样,得到的Bootstrap样本与原始样本有重合。

四、Matlab实例

假设我们的整体(population)来自与Bernouli分布(掷硬币),参数theta等于0.7,即投一次有0.7的概率出现1。为了考察采样点对估计的影响,我们分别采样了10和100个样本,采用了参数和非参数方法。

%%  Bootstrap demo for the MLE for a Bernoulli

close all;
clear all;

%统计量或估计量,这里是均值
estimator = @mean;

%Bernoulli分布的参数theta
theta = 0.7;

%样本数目分别为10和100
Ns = [10 100];

for Ni=1:length(Ns)

    %当前的样本数
    N = Ns(Ni);

    %再采样次数B
    B = 2000;

    %参数为theta的Bernoulli分布的采样
    X = rand(1,N) < theta;

    %MLE参数估计
    bmle = estimator(X);

    %参数化Bootstrap方法对应的B次再采样的统计量
    mleBoot = zeros(1,B);
    %非参数化Bootstrap方法对应的B次再采样的统计量
    mleBootNP=zeros(1,B); 

    for b=1:B

        %参数化Bootstrap对应的分布函数就是Bernoulli分布,其参数为Mle估计的参数,参数化Bootstrap再采样得到样本
        Xb = rand(1,N) < bmle;

        %对再采样的Bootstrap样本求统计量
        mleBoot(b) = estimator(Xb);

        %非参数化Bootstrap方法再采样,从原来的样本中再采样
        ndx = unidrnd(N,1,N);
        Xnonparam = X(ndx);

        %求统计量
        mleBootNP(b) = estimator(Xnonparam);
    end

    %% 绘图

    %参数化Bootstrap绘图
    figure;
    hist(mleBoot)
    set(gca,'xlim',[0 1]);

    %标准误
    se=std(mleBoot)/sqrt(B);
    ttl = sprintf('Boot: true = %3.2f, n=%d, mle = %3.2f, se = %5.3f\n', ...
        theta, N,mean(mleBoot), se);
    title(ttl);

    %非参数化Bootstrap绘图

    figure;
    hist(mleBootNP)
    set(gca,'xlim',[0 1])
    nonParaSe=std(mleBootNP)/sqrt(B);
    ttl = sprintf('NP boot: true = %3.2f, n=%d, mle = %3.2f, se = %5.3f\n', theta, N, mean(mleBootNP),nonParaSe);
    title(ttl);
end

对于参数化Bootstrap方法,假设我们已知总体是Bernouli分布,,先从样本中做MLE估计,得出参数theta,这样我们就可以从分布函数中直接抽样,而不是像非参数Bootstrap一样从样本中再采样。

to be continued....

时间: 2024-10-03 10:17:26

Bootstrap 自助法的相关文章

Bootstrap(自助法),Bagging,Boosting(提升)

Bootstrap(自助法),Bagging,Boosting(提升): 通俗易懂:http://www.jianshu.com/p/708dff71df3a Bootstrap:就是一个在自身样本重采样的方法来估计真实分布的问题 集成学习(ensemble learning):结合后能得到更合理的边界,减少整体错误,实现更好的分类效果. bagging和boosting都是集成学习(ensemble learning)领域的基本算法. Bagging代表算法-RF(随机森林)  RF:Rand

自助法在分散式投资策略中的应用

可以转载,禁止修改.转载请注明作者和原文链接. 先用人话来描述一下这个问题:有两个收益不固定的投资项目,如何将一笔固定的金额分开投资,才能使总投资风险最小? 再用数学语言来描述一下这个问题,对于两个收益分别为X和Y的金融资产,X.Y为随机变量,把比例为α的金额投到X上,把剩下比例为1-α的金额投到Y中,使Var(αX+(1-α)Y)最小.根据方差的性质.协方差的定义以及极值的导数意义进行转化并求导,可以很easy地得到: 其中 如果知道总体X.Y的分布,那么可以直接求出α,但事实上往往不知道,只

ML(4.3): R Random Forest

随机森林模型是一种数据挖掘模型,常用于进行分类预测.随机森林模型包含多个树形分类器,预测结果由多个分类器投票得出. 决策树相当于一个大师,通过自己在数据集中学到的知识对于新的数据进行分类.俗话说得好,一个诸葛亮,玩不过三个臭皮匠.随机森林就是希望构建多个臭皮匠,希望最终的分类效果能够超过单个大师的一种算法. 参考资料: https://zhuanlan.zhihu.com/p/24416833 http://www.doc88.com/p-3436627023327.html http://bl

Jackknife 刀切法

一.简介 Jackknife(刀切法)是有Maurice Quenouille (1949)提出的一种再抽样方法,其原始动机是降低估计的偏差.Jackknife为一种瑞士小折刀,很容易携带.通过类比, John W. Tukey (1958)在统计学中创造了这个术语,作为一种通用的假设检验和置信区间计算的方法. Jackknife类似于"Leave one out"的交叉验证方法.令X=(X1,X2,-,Xn)为观测到的样本,定义第i个Jackknife样本为丢掉第i个样本后的剩余样本

bootstrap, boosting, bagging 几种方法的联系

http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, jackknife, bagging, boosting, random forest 都有介绍,以下是搜索得到的原文,没找到博客作者的地址, 在这里致谢作者的研究. 一并列出一些找到的介绍boosting算法的资源: (1)视频讲义,介绍boosting算法,主要介绍AdaBoosing    http:

转载:bootstrap, boosting, bagging 几种方法的联系

转:http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, jackknife, bagging, boosting, random forest 都有介绍,以下是搜索得到的原文,没找到博客作者的地址, 在这里致谢作者的研究. 一并列出一些找到的介绍boosting算法的资源: (1)视频讲义,介绍boosting算法,主要介绍AdaBoosing    htt

R in action读书笔记(17)第十二章 重抽样与自助法

12.4 置换检验点评 除coin和lmPerm包外,R还提供了其他可做置换检验的包.perm包能实现coin包中的部分功能,因此可作为coin包所得结果的验证.corrperm包提供了有重复测量的相关性的置换检验. logregperm包提供了Logistic回归的置换检验.另外一个非常重要的包是glmperm,它涵盖了广义线性模型的置换检验依靠基础的抽样分布理论知识,置换检验提供了另外一个十分强大的可选检验思路.对于上面描述的每一种置换检验,我们完全可以在做统计假设检验时不理会正态分布.t分

【Bootstrap Method】Evaluating The Accuracy of a Classifier

自助法介绍: 非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法,也称为自助法.其核心思想和基本步骤如下:(1)采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样. (2)根据抽出的样本计算给定的统计量T. (3)重复上述B次(一般大于1000),得到N个统计量T. (4)计算上述B个统计量T的样本方差,得到统计量的方差. 举个例子:1.背景.比如要算一个统计量T,它是是一个从样本(X1,X2,X3……Xn)得来的函数,比如中位数,就是从(X1,X2,X3…

快速理解bootstrap,bagging,boosting,gradient boost-三个概念

1 booststraping:意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法. 其核心思想和基本步骤如下: (1)采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样. (2)根据抽出的样本计算统计量T. (3)重复上述N次(一般大于1000),得到统计量T. (4)计算上述N个统计量T的样本方差,得到统计量的方差. 应该说是Bootstrap是现代统计学较为流行的方法,小样本效果好,通过