写在前面

总是搞不懂、记不住这些名字好像很厉害的算法思想,这篇文章主要写一下Bootstrap抽样和蒙特卡罗算法思想。

一、Bootstrap抽样

1、基本思想

Bootstrap抽样的基本思想是在全部样本未知的情况下,借助部分样本的有放回多次抽样,构建某个估计的置信区间,抽象地说,通过样本得到的估计并没有榨干样本中的信息,bootstrap利用重采样,把剩余价值发挥在构建置信区间上。

2、算法流程

对于一个样本x1,x2,...,xn,其总体的概率分布中的参数θ是未知的,(参数θ可以简单理解为一些指标,比如,均值、中位数、方差等,当然还有一些比较复杂的指标),现在想要利用这些有限的样本得到一个估测值θ^。
Step1:根据自己的需要选择确定重采样的次数i,1000或者2000等;
Step2:从x1,x2,...,xn中有放回的抽取n次(这个n必须要已知样本数目相等),因为是有放回的,所以在n次抽取之后,可能有的样本被抽取多次,也可能有的样本一次都没有被抽取。
Step3:重复Step2,一共i次(Step1中的i),对每次抽取后的结果都计算出一个θ^值。
Step4:利用得到的θ1^,θ1^,...,θi^作为一个sample,计算其α2∗100%和(1−α)∗100%的百分位置,得到的就是近似出的,估测总体参数θ的置信区间的最低和最高点[x,y]。

3、举例说明

想要统计全校学生的平均年龄,但是学校总体的数据比较难拿到,而且数据量很大,但是现在你已经有了一部分学生的年龄信息,比如200个学生的信息。
现在你从这200个学生信息中有放回的抽取200次,计算对应的平均年龄θ^,重复30次(即上文中的i),这30个θ^的分布大概就能代表全校学生的平均年龄。
可能会有疑问,觉得这种方法结果不准确,但是我们使用这个方法的原因就是不能知道准确的全部样本,所以才使用bootstrap模拟,模拟出来的只是一个相对准确的结果。

二、蒙特卡罗思想

蒙特卡罗是一类随机算法的统称,其主要思想是采样越多,得到的结果越近似于最优解。更多的是从总体中抽一个样本,计算估计量(均值等),作为整体估计。
举例说明,一个有1000个整数的集合,要求其中位数,可以从中抽取m<1000个数,把它们的中位数近似地看作这个集合的中位数。随着m增大,近似结果是最终结果的概率也在增大,但除非把整个集合全部遍历一边,无法知道近似结果是不是真实结果。

三、Bootstrap抽样思想和Monte Carlo思想区别

Monte Carlo和Bootstrap是两种思想,都是基于random sampling去近似某一目标。Monte Carlo的目标一般是一个难以计算的积分,bootstrap的目标一般是统计推断。
bootstrap是从部分样本有放回的重采样i次(全部样本是未知的),将多次抽样的估计量(均值等)的分布作为整体的分布结果。而蒙特卡罗是在已知总体样本的情况下,不想计算全部值,就从中抽取一个样本(或多个),用这个抽取样本的估计量当做整体估计。

参考文章:https://www.zhihu.com/question/22929263