蒙特卡洛方法

核心思想

蒙特卡洛方法通过从随机分布中采样,并利用样本均值来逼近目标的期望或积分。这是一种基于统计抽样的数值计算方法,通常用于处理高维或复杂的数学模型。

数学本质

蒙特卡洛的本质在于将一个复杂的确定性问题(例如,积分或期望的计算)转换为一个概率问题。通过大量独立的样本,利用大数法则来估算目标的期望值或积分。具体来说,蒙特卡洛方法通过样本均值来逼近目标期望

期望估计

假设我们有一个目标函数 ,并且我们想要估计它在某个随机变量 上的期望值,即:
其中 是随机变量 的概率密度函数,表示 关于 的期望。 通过蒙特卡洛方法,使用样本均值来逼近这个期望值:
其中 是从分布 中独立采样得到的 (N) 个样本。

积分估计

蒙特卡洛方法广泛应用于数值积分中。假设我们要求解以下积分:
可以通过生成一系列均匀分布的随机样本 来估计积分:
这种方法非常适用于高维和复杂区域的积分计算。

鲁棒性分析

鲁棒性分析方法用于评估和确保模型在不确定性或扰动下的稳定性。以下是常用的四种鲁棒性分析方法,从简单到复杂逐步增加分析深度:

灵敏度分析

核心思想

灵敏度分析的目的是研究模型对输入参数变化的敏感程度。通过分析输入变化对输出结果的影响,可以识别出哪些参数对模型输出的影响最大,帮助决策者优先关注这些关键参数。

公式

假设模型的输出为 ,输入参数为 ,灵敏度分析通过计算偏导数来衡量输入变化对输出的影响:
其中 表示参数 对模型输出 的灵敏度。

适用场景

灵敏度分析适用于已知模型并且参数变化范围较小的情况。它帮助你识别影响结果的关键因素,便于后续的优化或决策调整。

场景分析

核心思想

场景分析通过定义一组代表性的情境(如乐观、悲观、中性)来分析模型输出的变化。每个情境对应不同的输入参数值或假设条件。它不像蒙特卡洛那样依赖概率分布,而是通过离散的假设情境来描述不确定性。

公式

假设我们有一个优化目标 ,场景分析通过定义不同的情景 来进行分析,目标是计算在每个场景下的最优解:
例如,定义情景为:乐观情景 ,悲观情景 ,或基准情景

适用场景

适用于无法精确描述概率分布或无法得到完整样本的情形,场景分析提供了一个简化的、易于理解的方式来处理不确定性。

鲁棒优化

鲁棒优化的目标是确保优化解在输入不确定性的最坏情形下仍然可行,通常不假设输入的分布,而是假定参数变化在一个已知集合内。通过考虑最坏情况,鲁棒优化能够提供对不确定性的强适应性

公式

鲁棒优化问题的标准形式为:

适用场景

鲁棒优化适用于输入不确定性无法用明确概率分布描述的情况。它特别适合用来应对“最坏情况”的问题,如系统设计、供应链优化、金融风险管理等。

正则化与稳定性方法

核心思想

正则化是通过在优化问题中加入额外的约束或惩罚项,来抑制模型对数据扰动的过度敏感性,以提高模型在不确定数据条件下的稳定性。这是鲁棒优化的一种简化形式,通过控制模型的复杂度或参数变化来提高其稳定性。

公式

正则化方法通常采用以下形式的优化问题:
其中:

  • 是损失函数。
  • 是正则化参数。
  • 是对模型参数的约束(例如 L2 范数)。

适用场景

正则化方法适用于模型存在数据不足或噪声过大的情况。通过添加正则化项,模型不仅能提高对扰动的鲁棒性,还能避免过拟合,提高泛化能力。

全局灵敏度分析

Tip

先用蒙特卡洛采样,再用方差分解做全局灵敏度分析

它研究的是在整个参数空间上,而不是只在某一个基准点附近,哪些变量真正主导了输出波动。 这时最经典的方法就是:

  • Sobol 方差分解
  • FAST/eFAST
  • Morris 筛选法
  • 基于回归或树模型的全局重要性分析

这里面最常见的就是 Sobol 全局灵敏度分析。而 Sobol 指数通常要靠大量样本估计,于是就需要采样;而采样最常见的实现手段,就是蒙特卡洛或拉丁超立方采样。

先用蒙特卡洛采样,再用方差分解做全局灵敏度分析:先在参数空间里随机生成很多组输入, 计算每组输入对应的输出,再根据这些样本估计“输出方差里有多少是由某个变量单独贡献的,有多少是由变量交互贡献的”。

1. Sobol 方差分解

Sobol 方法是全局灵敏度分析里最标准、最“正统”的一类。它的核心思想非常明确:

设模型为
把输出随机变量 的总方差

分解为各输入变量单独贡献的部分,以及变量之间交互贡献的部分。

也就是:

这里:

  • 单独造成的方差贡献;
  • 的二阶交互贡献;
  • 更高阶项表示更复杂交互。

在这个基础上定义两个最核心的指标。

一阶 Sobol 指数

它表示:如果只看 自己单独作用,它解释了输出波动的多大比例。

总效应 Sobol 指数

它表示:凡是涉及 的影响,不管是它单独作用,还是它和别的变量一起交互,全部都算进去,最终 一共贡献了多少。

所以解释上很清楚:

  • 大:说明这个变量自己就很重要;
  • 大:说明这个变量总体重要;
  • 大:说明这个变量虽然单独作用未必强,但交互作用很强。

这就是 Sobol 方法最强的地方:它不只告诉你“谁重要”,还告诉你“这个重要性来自主效应还是交互效应”。

优点

第一,解释力极强。
第二,能识别非线性和交互。
第三,结论有很清晰的数学含义,比较“硬”。

缺点

第一,计算代价高。参数一多、模型一复杂,样本量会上去。
第二,通常要求输入变量相互独立,至少经典 Sobol 框架是这样;变量相关时要做扩展版,不然解释会出问题。
第三,结果依赖变量取值范围和分布设定。你设定的区间不同,敏感度排序可能也变。

适用场景

它适合这种问题:

  • 模型非线性明显;
  • 变量交互不能忽略;

2. FAST / eFAST

FAST 是 Fourier Amplitude Sensitivity Test,中文一般叫傅里叶幅值灵敏度检验。它和 Sobol 的目的很像,也是在做全局灵敏度分析,但思路完全不同。

Sobol 是直接从方差分解角度出发,FAST 则是把每个输入变量编码成不同频率的周期信号,然后让模型输出随一个辅助变量变化,最后通过傅里叶分析,把不同频率成分对应回各输入变量的影响。

Tip

本质是给每个变量一个独特频率标签,把变量变化‘压缩’到一条采样轨迹上,再通过频谱分离出谁影响了输出。 Sobol 更像“标准答案”,eFAST 更像“更高效的近似实现路线”。

这个想法很巧。因为如果设计得好,不需要像 Sobol 那样在高维空间里蛮力采很多点,而是沿着一条特殊曲线采样,就能恢复很多全局灵敏度信息。

eFAST 是 extended FAST,也就是扩展版 FAST。它比传统 FAST 更实用,通常可以估计总效应指数,也更接近 Sobol 总效应分析的功能。

所以在实际使用里,更常提 eFAST,而不是最原始的 FAST。

优点

第一,通常比直接做 Sobol 采样更省样本。
第二,对中高维问题比较有吸引力。
第三,也能处理非线性和交互。

缺点

第一,原理不直观。论文里如果不讲清楚,读者很难理解。
第二,实施细节比普通 Sobol 更讲究,比如频率分配、采样设计这些地方容易出技术坑。
第三,虽然它也给全局灵敏度,但解释上整体不如 Sobol 那么“自然直白”。

适用场景

  • 做全局灵敏度;
  • 又不想付出太高的 Sobol 计算成本;
  • 模型维度较高;

3. Morris 筛选法

它不是为了给出特别精确的方差贡献率,而是为了做一件更务实的事:

在很多变量里,快速筛掉那些几乎不重要的变量。

核心思想

Tip

它在输入空间中取若干条随机轨迹,每次只改变一个变量一点点,观察输出变化.对每个变量,会得到很多次“单步扰动引起的输出变化”,这些变化叫 elementary effects。

对每个变量统计两个量:平均绝对效应,标准差

优点

第一,计算成本低。
第二,非常适合高维变量初筛。
第三,可以初步识别非线性和交互的存在。

缺点

第一,结果比较粗,不像 Sobol 那样有精确的方差分解解释。
第二,它更适合排序和筛选,不适合做最终定量结论。
第三,结果会受网格划分、步长、轨迹数等参数影响。

适用场景

这是它最适合的地方:

  • 变量很多,十几个、几十个甚至更多;
  • 模型计算本身不便宜;
  • 不可能一上来就对所有变量做 Sobol;
  • 需要先找出关键变量子集。

典型做法往往是:

先用 Morris 筛选,再对筛出来的少数关键变量做 Sobol。

这是一套很成熟的组合拳。因为 Sobol 的瓶颈之一就是变量多,而 Morris 正好先帮你降维。

4. 基于回归或树模型的全局重要性分析

这类方法严格说不一定属于“经典灵敏度分析”,但在工程和机器学习里非常常用。它们的核心思路是:

把输入 和输出 视为监督学习问题,用一个代理模型或解释模型去近似 ,然后根据代理模型给出变量重要性。

基于回归的全局重要性

最简单的是线性回归、广义加性模型、岭回归、Lasso 等。

假设你用一个代理模型:

如果先把变量标准化,那么 有时可以作为一种粗略的重要性指标。
更复杂一点,也可以看:

  • 增量解释率;
  • standardized regression coefficients;
  • partial dependence;
  • SHAP for linear models。

但必须非常警惕:
如果真实模型强非线性、交互强,而你还在用线性回归系数解释重要性,那很可能会误导。

所以回归类方法的强弱,取决于你选的代理模型能不能近似真实关系。

优点

第一,容易实现。
第二,容易解释。
第三,如果代理模型本身就是研究对象,分析很方便。

缺点

第一,模型设定错了就会误判重要性。
第二,对非线性和交互的捕捉依赖你有没有显式建模。
第三,变量相关性强时,回归系数解释会变得不稳定。