复习一下bootstrapping。
统计中我们常常需要做参数估计,具体问题可以描述为:
给定一系列数据,假设它们是从分布中采样得到的,参数估计就是希望估计分布中的。
bootstrapping算法的目的就是为了估计从而得到的分布的预测。具体地,它的思想对已有的观测值进行多次重复的抽样,每次抽样都可以得到一个预测的经验分布函数,根据这些不同抽样得到的经验分布函数,可以得到一个更好的关于统计量分布的估计。
打个比方,如果现在有N个学生的身高数据,需要估计的统计量是学生的平均身高。bootstraping的方法可以替我们确定身高平均值的置信区间。步骤大致如下:
- 从N个数据中随机抽取N个数据(有放回)构成一个样本
- 计算每个样本的均值
- 重复步骤1,2知道计算足够多的次数(如100次)
根据这些步骤得到的100次结果,我们可以得出95%的置信区间,即覆盖了95%的样本均值的区间。换言之,超出这个范围的身高均值,出现的次数都小于5%,也可以说它的p值<0.05。
以上所说的可以理解为bootstrapping百分位法,它假设样本均值与总体均值的分布大致相似,但这个假设在现实中很难保证成立。一个更好的方法是bootstrapping经验法。具体的核心思想可以概括为:
计算总体均值的置信区间的本质是回答这样一个问题:样本均值的分布是如何围绕总体均值变化的。换言之,我们想知道残差的分布。就是当我们使用来估计的误差。虽然我们不知道的分布,但是它可以由如何围绕变化(即的分布)来近似。这里是利用 Bootstrap 样本计算的均值与原始样本均值之间的差:
。
传统的区间估计往往需要先知道的分布,但这有点陷入鸡生蛋蛋生鸡的困境了。相反的,bootstrapping方法则无需已知分布,提供了一种灵活的判断统计量的方法。
在做机器学习或者深度学习实验室,往往有些实验结果会被要求提供p值。一个可行的方法就是使用bootstrapping。将测试集中的数据做随机抽样得到一些样本,通过模型预测得到每个样本关于某metric的平均值,这样就能计算出其p值了。
参考:
https://zhuanlan.zhihu.com/p/146438101
https://www.cnblogs.com/wangprince2017/p/9973114.html
https://zhuanlan.zhihu.com/p/41099219
网友评论