美文网首页
理解bootstrapping

理解bootstrapping

作者: ShuiLocked | 来源:发表于2020-06-17 07:25 被阅读0次

    复习一下bootstrapping。

    统计中我们常常需要做参数估计,具体问题可以描述为:
    给定一系列数据x_1,x_2,...,x_n \sim i.i.d. F(x|\theta),假设它们是从分布F中采样得到的,参数估计就是希望估计分布F中的\theta

    bootstrapping算法的目的就是为了估计\theta从而得到F的分布的预测。具体地,它的思想对已有的观测值x_1,x_2,...,x_n进行多次重复的抽样,每次抽样都可以得到一个预测的经验分布函数,根据这些不同抽样得到的经验分布函数,可以得到一个更好的关于统计量分布的估计。

    打个比方,如果现在有N个学生的身高数据,需要估计的统计量是学生的平均身高。bootstraping的方法可以替我们确定身高平均值的置信区间。步骤大致如下:

    • 从N个数据中随机抽取N个数据(有放回)构成一个样本
    • 计算每个样本的均值
    • 重复步骤1,2知道计算足够多的次数(如100次)

    根据这些步骤得到的100次结果,我们可以得出95%的置信区间,即覆盖了95%的样本均值的区间。换言之,超出这个范围的身高均值,出现的次数都小于5%,也可以说它的p值<0.05。

    以上所说的可以理解为bootstrapping百分位法,它假设样本均值与总体均值的分布大致相似,但这个假设在现实中很难保证成立。一个更好的方法是bootstrapping经验法。具体的核心思想可以概括为:

    计算总体均值\mu的置信区间的本质是回答这样一个问题:样本均值\bar{x}的分布是如何围绕总体均值\mu变化的。换言之,我们想知道残差\delta=\mu-\bar{x}的分布。\delta就是当我们使用\bar{x}来估计\mu的误差。虽然我们不知道\delta的分布,但是它可以由\bar{x}^{*}如何围绕\bar{x}变化(即\delta^{*}的分布)来近似。这里\delta^{*}是利用 Bootstrap 样本计算的均值与原始样本均值之间的差:
    \delta^{*} = \bar{x}^{*} - \bar{x}

    传统的区间估计往往需要先知道F的分布,但这有点陷入鸡生蛋蛋生鸡的困境了。相反的,bootstrapping方法则无需已知F分布,提供了一种灵活的判断统计量的方法。

    在做机器学习或者深度学习实验室,往往有些实验结果会被要求提供p值。一个可行的方法就是使用bootstrapping。将测试集中的数据做随机抽样得到一些样本,通过模型预测得到每个样本关于某metric的平均值,这样就能计算出其p值了。

    参考:
    https://zhuanlan.zhihu.com/p/146438101
    https://www.cnblogs.com/wangprince2017/p/9973114.html
    https://zhuanlan.zhihu.com/p/41099219

    相关文章

      网友评论

          本文标题:理解bootstrapping

          本文链接:https://www.haomeiwen.com/subject/qifjxktx.html