蒙特卡洛模拟是什么?如何用它做概率与不确定性分析
更新时间
蒙特卡洛模拟是一种用大量随机抽样来估计结果分布的方法:你为每个不确定输入指定一个概率分布,让模型重复运行成千上万次,每次从分布中抽一组输入值,最后汇总输出的均值、分位数和区间。它适合输入不确定、模型非线性或难以解析求解的问题;如果输入是确定的、模型简单可解析,直接计算更省事。
核心思想:用抽样代替推导
很多实际问题中,输出是多个输入的函数,而输入本身带有不确定性。解析地推导输出的分布往往很困难,尤其当模型是非线性、含隐函数或多参数耦合时。
蒙特卡洛的做法是把“推导”换成“试验”:
- 为每个不确定输入设定概率分布(如正态、均匀、对数正态)。
- 从每个分布中随机抽一个值,组成一组输入。
- 把这组输入代入模型,得到一个输出。
- 重复成千上万次,得到输出的样本集合。
- 用这个样本集合估计输出的均值、标准差、分位数、超过某阈值的概率等。
样本量越大,估计越稳定。误差大致按 1/√N 缩小,所以样本量增加 100 倍,精度才提高约 10 倍。
适合与不适合的问题
| 场景 | 是否适合 | 原因 |
|---|---|---|
| 多个输入各有不确定性,想看输出范围 | 适合 | 天然处理不确定性传播 |
| 估计“超过阈值”的概率,如风险、合格率 | 适合 | 直接数样本比例 |
| 模型非线性、含隐函数、无法线性化 | 适合 | 不要求模型形式 |
| 输入确定、模型简单可解析 | 不适合 | 直接计算更快更准 |
| 需要极端尾部概率(如百万分之一) | 谨慎 | 需要极大样本量或方差缩减技术 |
在曲线拟合与回归分析中,蒙特卡洛也常被用来评估参数估计的稳定性:对残差或参数施加随机扰动,重复拟合,观察参数分布。MTR Software 的 FitAll 是一款非线性(及多线性)回归分析与曲线拟合工具,其介绍强调可以直接拟合真正描述系统的模型,包括隐函数形式;这类工具配合蒙特卡洛思路,可用于检查拟合结果对数据扰动的敏感程度。
一次基本模拟的步骤
第一步:定义输入分布
对每个不确定输入,明确分布类型和参数。例如“测量误差服从均值 0、标准差 0.5 的正态分布”“需求在 80 到 120 之间均匀分布”。分布假设是模拟结果可信度的根基,不能随手填。
第二步:设定抽样次数
先跑 1000 次看结果是否稳定,再逐步增加到 10000 或更多。关注均值、标准差和关键分位数随样本量的变化,变化趋缓即可。
第三步:运行模型并记录输出
每次抽样代入模型,记录输出值。若模型本身是拟合得到的,注意把参数不确定性也纳入,而不只是输入变量的不确定性。
第四步:汇总统计量
至少报告:均值、标准差、最小值、最大值、5% 与 95% 分位数,以及关心的阈值概率。分位数比单一均值更能反映风险。
第五步:验证与收敛检查
换一个随机种子重跑,比较关键统计量是否接近;把样本量翻倍,看结果是否明显漂移。两者都稳定,结果才可复述。
一个简单例子:某零件尺寸 = 标称值 + 加工偏差 + 装配偏差,两个偏差都设为正态分布。模拟 10000 次后,若 95% 分位数超出公差上限,就说明当前工艺有约 5% 的超差风险,可据此决定是否收紧偏差或放宽公差。
结果怎么读
- 均值:中心趋势,但对偏态分布代表性有限。
- 分位数:5% 和 95% 分位数给出典型波动范围,比“均值±标准差”更适合非正态输出。
- 阈值概率:如“亏损概率”“超差概率”,是决策最直接的依据。
- 收敛性:统计量随样本量增加趋于平稳,才说明样本足够。
常见误区与排查
- 输入分布假设不合理:结果再精确也只是假设的产物。排查方法是做敏感性分析,换一组合理分布看结论是否翻转。
- 样本量不足:分位数和尾部概率抖动大。排查方法是翻倍样本量对比。
- 随机种子未固定:结果无法复现。正式报告前固定种子并记录。
- 忽略参数不确定性:只对输入抽样、不对拟合参数抽样,会低估总不确定性。
- 把模拟当预测:模拟给出的是“在给定假设下的分布”,不是对未来的保证。
需要购买或了解 FitAll 的具体功能与价格,可访问 fitall.com 查看其产品与购买页面;页面提到 FitAll 购买价格已下调 67%,但具体金额与授权条件以网站当前信息为准。