对执行全局敏感性分析的参数进行采样的好方法是什么?有些方法是使用积分定义的,有些是使用蒙特卡罗。这些如何比较?
如何优化采样以进行全局敏感性分析
您正在寻找的是准蒙特卡洛 (QMC) 序列的名称。准蒙特卡罗序列“比随机更随机”,即它们比随机序列更好地填充高维空间,这在某种程度上符合更直观的随机性形式。但更重要的是,由于它们“很好地填充空间”(可以量化为具有低差异的属性),它们往往是一种非常好的采样方式,可以使积分更快地收敛。因此,准蒙特卡洛序列可以比蒙特卡洛积分方法具有更快的收敛速度,从随机采样的用于具有低差异的准随机序列。
Sobol 敏感性分析或基于方差的全局敏感性分析通常是人们想要以一种允许独立量化主效应(第一指数)与交互效应(总指数、第二指数等)的方式理解敏感性时开始的地方。有关全局敏感度指标的概述,您可以查阅这些讲义它汇集了各种方法的摘要,并试图拼凑出潜在的共性。基本上发生的事情是他们利用概率描述,因此都相当于某种形式的某种连续平均值,这一切都变成了高维积分的近似值。使用蒙特卡洛类型的方法可以快速计算高维积分,因此可以得出利用随机抽样的估计器,然后可以用 QMC 代替随机抽样。
有关 QMC 抽样优势的更多详细信息,本文是一个很好的概述。这些准蒙特卡罗序列可以与积分估计器混合,用于基于方差的全局敏感性分析,以提供快速准确的计算方法。例如,DifferentialEquations.jl 库的全局灵敏度分析方法是如何工作的,许多其他灵敏度库(如R 的灵敏度)利用这些类型的估计器并要求用户传入 QMC 采样点的“设计矩阵”。
有许多库可用于生成准蒙特卡洛序列。恰当命名的QuasiMonteCarlo.jl汇集了几种不同的采样方法,包括拉丁超立方体和 Sobol 序列。randtoolbox是 R 中的一个类似包。那里有更多的东西,但这应该为您提供查找所需结果所需的语言。
最后一点是提醒您注意,QMC 不是“万能的”。自适应蒙特卡罗方法动态更改采样策略以匹配它试图理解的函数的行为。像VEGAS这样的算法就是这样一种方法,在某些情况下这些方法可能会更好。例如,如果做蒙特卡洛积分,发现大部分密度是在空间的一小块区域,QMC 在大部分点上都是浪费,而自适应蒙特卡洛会很快学会在少数几个高密度区域周围进行优先采样阶段。然而,这些想法是互补的,而不是相互矛盾的,因此最近的“好方法”将自适应和准随机策略结合在一起。这篇论文很好地介绍了这种混合方法. 我认为同样重要的是要注意 CUBA,最好的高维正交库之一,它指出它的蒙特卡洛方法实现(如 VEGAS)使用准蒙特卡洛序列,并提到这可能是对该方法的一个很大改进. 原因很容易理解:自适应方法有助于将点集中在正确的位置,准随机序列可以在给定位置更好地采样点:天作之合!虽然本节的所有内容都是从数值求积的角度编写和推导的,但请注意,全局灵敏度测量值(例如 Sobol 指数)的计算是求积的,因此有些论文更直接地解决了自适应方法 + QMC以及它们与 Sobol 全局灵敏度度量计算的关系.