Bootstrap vs Monte Carlo,误差估计

机器算法验证 引导程序 蒙特卡洛 错误
2022-01-18 14:36:56

我正在阅读安德森(Anderson)(1976 年)在地球化学计算中通过蒙特卡洛方法传播误差的文章,其中有些内容我不太了解。

考虑一些测量数据{A±σA,B±σB,C±σC}以及处理它并返回给定值的程序。在本文中,该程序用于首先使用数据的手段获得最佳值(即:{A,B,C})。

然后,作者使用蒙特卡罗方法通过在其不确定性限制内改变输入参数(由具有均值的高斯分布给出)来为该最佳值分配不确定性{A,B,C}和标准差{σA,σB,σC}) 在将它们输入程序之前。如下图所示:

在此处输入图像描述

版权:ScienceDirect

其中不确定性可以从最终获得Z分配。

如果我应用引导方法而不是这种蒙特卡罗方法,会发生什么?像这样的东西:

在此处输入图像描述

这是:在将数据输入程序之前,我没有在不确定性范围内改变数据,而是从它们中进行替换。

在这种情况下,这两种方法有什么区别?在应用其中任何一个之前,我应该注意哪些警告?


我知道这个问题Bootstrap, Monte Carlo,但它并不能完全解决我的疑问,因为在这种情况下,数据包含指定的不确定性。

4个回答

据我了解您的问题,“蒙特卡洛”方法和引导方法之间的区别本质上是参数统计和非参数统计之间的区别。

在参数化框架中,人们确切地知道数据如何x1,,xN生成,即给定模型的参数 (A,σA, 等等。在您的描述中),您可以生成此类数据集的新实现,并从中生成您的统计程序(或“输出”)的新实现。因此可以完整准确地描述输出的概率分布Z,通过数学推导或通过蒙特卡罗实验从该分布返回任意大小的样本。

在非参数框架中,不希望对数据做出这样的假设,因此使用数据并且仅使用数据来估计其分布,F. bootstrap 是一种通过经验分布估计未知分布的方法F^通过设置概率权重1/n在样本的每个点上(在最简单的情况下,当数据是 iid 时)。使用这种经验分布F^作为真实分布的替代品F,可以通过蒙特卡罗模拟推导出输出的估计分布Z.

因此,这两种方法之间的主要区别在于是否对数据的分布做出了这种参数化假设。

蒙特卡洛模型中的随机变化由钟形曲线表示,计算可能假设正态分布的“误差”或“变化”。至少,您的计算机需要一些关于从中得出“变化”的分布的假设。自举不一定做出这样的假设。它将观察作为观察,如果它们的误差是不对称分布的,那么它就会以这种方式进入模型。

自举从观察中提取,因此需要一些真实的观察。如果您在一本书中读到,C 的平均值为 5,标准差为 1,即使您没有可借鉴的观察结果,您也可以建立蒙特卡洛模型。如果您的观察很少(想想:天文学),您可以建立一个具有 6 个观察和一些关于它们分布的假设的蒙特卡洛模型,但您不会从 6 个观察中引导。

一些输入来自观察数据和一些来自模拟(假设)数据的混合模型是可能的。

编辑: 在评论中的以下讨论中,原始发布者发现以下内容很有帮助:

“原始程序”并不关心它是否得到一个值,您是从平均值和偏差计算出来的,还是在自然过程中真正实现平均值和偏差。

如果将输出 Z 与输入相关联的函数是合理线性的(即在输入的变化范围内),则 Z 的方差是输入的方差和协方差的组合。分布的细节并不重要......因此,两种方法都应该返回相似的结果。

参见 GUM 的补充 1

Bootstrap 意味着让数据自己说话。使用 Monte Carlo 方法,您可以通过均匀分布从强加的 CDF(正态;伽马;β...)中采样许多随机抽取,并创建一个经验 PDF(前提是 CDF 是连续且可导出的)。整个蒙特卡洛过程的一个有趣的解释报告在:Briggs A、Schulper M、Claxton K. 健康经济评估的决策模型。牛津:牛津大学出版社,2006:93-95。