跳至主要内容

误差传播:不确定性如何在计算中扩散

了解测量不确定性如何影响计算结果,并学习在多种数学运算中量化不确定性的公式与方法。
· 9分钟 阅读

使用 AI 探索

当我们使用测量值进行计算时,实际上是在与不确定性打交道。每一次测量都带有一定不确定性,通常以绝对误差或相对误差表示。将测量用于计算时,这些不确定性并不会消失;相反,它们会相互叠加,并可能因所涉及的数学运算而被放大。

误差传播(又称不确定度传播)是指确定测量变量中的不确定性如何影响计算结果不确定性的过程。

在本教程中,我们将学习支配不确定性在不同运算中如何传播的数学规则,并探讨量化不确定性的多种方法。我们将通过实用示例,演示如何在真实场景中计算不确定性,范围涵盖从简单算术到涉及相关性与高级仿真技术的复杂函数。

误差传播的关键概念

在深入数学规则之前,先理解一些误差传播背后的概念:

  • 绝对误差表示与真实值的实际偏差,单位与测量值相同。若我们测得长度为 10.0 ± 0.2 cm,则绝对误差为 0.2 cm。
  • 相对误差将不确定性表示为测量值的一个分数或百分比。对上述长度测量,相对误差为 0.2/10.0 = 0.02 或 2%。
  • 标准差是在大多数科学语境中用于度量不确定性的主要指标,表示值围绕均值的离散程度。当我们将测量表示为 x ± σ 时,σ 表示一个标准差。
  • 方差是标准差的平方。相互独立的随机变量的方差可直接相加,这一性质简化了许多计算。
  • 协方差衡量两个变量相互变化的关系。当不确定性存在相关性时,必须在传播公式中加入协方差项才能得到准确结果。

理解独立不确定性与相关不确定性的区别同样重要。独立不确定性源自彼此无关的来源,例如不同仪器的读数误差。相关不确定性共享共同来源,例如多个测量使用了相同的校准标准。

虽然本教程重点关注遵循统计规律的随机误差,但值得注意的是,系统误差(持续的偏差)需要采用不同的方法处理。

误差传播的数学规则

不确定度的传播会根据所进行的数学运算遵循特定规则。让我们逐一探讨这些运算:

加法与减法

当对带有不确定性的测量值进行加减时,若以标准差计,应将绝对不确定性按平方和开根(即二乘求和后开方)的方式相加。

对于 z = x ± y,其中 x 的不确定性为 σₓ,y 的不确定性为 σᵧ:

σz = √(σₓ² + σᵧ²)

考虑一个测量两根金属棒总长度的例子。A 棒测得 15.3 ± 0.2 cm,B 棒测得 8.7 ± 0.1 cm。总长度为:

Length = 15.3 + 8.7 = 24.0 cm
Uncertainty = √(0.2² + 0.1²) = √(0.04 + 0.01) = √0.05 = 0.22 cm

因此,总长度为 24.0 ± 0.22 cm。

乘法与除法

对于乘法与除法,我们处理相对不确定性。结果的相对不确定性等于输入相对不确定性的平方和开根。

对于 z = xy 或 z = x/y:

(σz/z)² = (σₓ/x)² + (σᵧ/y)²

假设我们要求一矩形的面积,长度为 5.0 ± 0.1 m,宽度为 3.0 ± 0.05 m。

Area = 5.0 × 3.0 = 15.0 m²
Relative uncertainty in length = 0.1/5.0 = 0.02
Relative uncertainty in width = 0.05/3.0 = 0.0167
Relative uncertainty in area = √(0.02² + 0.0167²) = √(0.0004 + 0.000278) = 0.026
Absolute uncertainty in area = 15.0 × 0.026 = 0.39 m²

因此,面积为 15.0 ± 0.39 m²。

幂与开方

当将测量值提升至 n 次幂时,相对不确定性会乘以幂的绝对值。

对于 z = xⁿ:

σz/z = |n| × (σₓ/x)

考虑一个情景:测得一球体半径为 2.5 ± 0.05 cm,欲用 V = (4/3)πr³ 计算其体积。

Volume = (4/3)π(2.5)³ = 65.45 cm³
Relative uncertainty in radius = 0.05/2.5 = 0.02
Relative uncertainty in volume = 3 × 0.02 = 0.06
Absolute uncertainty in volume = 65.45 × 0.06 = 3.93 cm³

因此,体积为 65.5 ± 3.9 cm³。

对数与指数函数

自然对数:

If z = ln(x), then σz = σₓ/x

指数函数:

If z = eˣ, then σz/z = σₓ

假设我们测得 x = 10.0 ± 0.3,并计算 y = ln(x)。

y = ln(10.0) = 2.303
Uncertainty in y = 0.3/10.0 = 0.03

因此,ln(10.0) = 2.303 ± 0.030。

在我们已探索不同运算的具体规则之后,接下来了解支撑这些规则的统一数学基础。

用微积分推导

为建立直觉,可将偏导数理解为回答这样的问题:“如果我把这个输入改变一丁点,输出会改变多少?”

这种对变化的敏感度正是我们理解不确定性如何传播所需的。如果偏导数很大,说明该输入对输出影响强,其不确定性对最终不确定性的贡献就更大。

让我们从数学基础开始。对函数 z = f(x, y),全微分告诉我们:

dz = (∂f/∂x)dx + (∂f/∂y)dy

当我们把 dx 和 dy 解释为小的不确定性,且想要求方差(σz²)时,对两边平方并取期望值。

这会得到通用的误差传播公式:

σz² = (∂f/∂x)² σₓ² + (∂f/∂y)² σᵧ² + 2(∂f/∂x)(∂f/∂y)σₓᵧ

其中,σₓᵧ 表示 x 与 y 的协方差。对于独立变量,该项为零,从而得到我们通常使用的较为简化的形式。

让我们通过推导乘法规则来验证该公式。

对于 z = xy:

  • 关于 x 的偏导:∂z/∂x = y
  • 关于 y 的偏导:∂z/∂y = x

代入通用公式(假设 x 与 y 独立):

σz² = y²σₓ² + x²σᵧ²

两边同除以 z² = (xy)²:

σz²/z² = σₓ²/x² + σᵧ²/y²

开平方得到:

(σz/z)² = (σₓ/x)² + (σᵧ/y)²

这正是相对不确定性按平方和开根相加的乘法规则。

当处理记忆规则不适用的复杂函数时,这种通用方法尤为有用。

例如,若需计算 z = x²sin(y) + exy 的不确定性,我们可以系统地应用偏导,而不必尝试拼接多条规则。该公式适用于任意可微函数,是我们在复杂计算中进行不确定性分析的最有用工具。

误差传播中的相关性与协方差

到目前为止,我们的误差传播公式假设不确定性彼此独立,但当它们并非独立时会怎样?

相关性在不确定性之间的出现比我们想象的更常见,并且会显著影响结果。当测量共享同一不确定性来源时,就会产生相关性。

例如,使用同一把尺子测量金属块的长度与宽度。如果这把尺子实际上短了 1%,两次测量都会以同样方式受到系统影响,因而呈正相关。类似地,如果温度会影响实验中的多个传感器,那么同一时刻的所有读数都会共享这种环境影响。

当一个测量值偏高时另一个也倾向偏高(正相关),或一个偏高时另一个倾向偏低(负相关),我们必须在不确定性计算中考虑这种关系。

当变量存在相关性时,我们在传播公式中引入协方差项 σₓᵧ。对于相关系数为 ρ 的两个相关变量:

σₓᵧ = ρσₓσᵧ

完整的加法公式变为:

σz² = σₓ² + σᵧ² + 2ρσₓσᵧ

我们用一个例子来加深理解。

在较高温度下测量一块矩形金属板的周长。测得长度 L = 10.0 ± 0.1 cm,宽度 W = 5.0 ± 0.05 cm。周长 P = 2L + 2W。

不考虑相关性时:

P = 2(10.0) + 2(5.0) = 30.0 cm
σₚ = √[(2 × 0.1)² + (2 × 0.05)²] = √[0.04 + 0.01] = 0.22 cm

然而,热胀对两个尺寸的影响相似。若估计相关系数 ρ = 0.7(强正相关):

Covariance term: 2 × 2 × 2 × 0.7 × 0.1 × 0.05 = 0.028
σₚ = √[0.04 + 0.01 + 0.028] = √0.078 = 0.28 cm

忽略相关性使我们低估了约 25% 的不确定性,这一差异可能影响结论。

应在以下情况下纳入协方差:

  • 多次测量使用同一仪器或校准标准。
  • 环境条件(温度、压力、湿度)同时影响所有测量。
  • 变量之间存在已知的物理关系(如各向尺寸共同膨胀)。

当测量真正独立、使用不同仪器、在不同时间进行,或与其他不确定性来源相比相关性可忽略时,可以合理地省略协方差。若拿不准,只要条件变化会以相同方向影响两项测量,它们很可能相关,应在分析中予以考虑。

处理不确定性的高级方法

当函数涉及条件逻辑、迭代计算或复杂的非线性关系时,蒙特卡罗模拟是一个很好的替代方案。

蒙特卡罗模拟

蒙特卡罗模拟采用直接方法:不再通过公式传播不确定性,而是模拟成千上万种可能情景,观察结果的分布。

过程如下:

  1. 从每个输入变量的分布中生成随机样本。
  2. 对每组样本计算结果。
  3. 分析输出分布以确定不确定性。

您可以通过我们的深度指南学习如何在 Excel 中进行蒙特卡罗模拟。不过,为了本教程的完整性,我们再看一个解析方法会变得复杂的情景。

考虑 z = x²/y,其中 x = 10.0 ± 0.5,y = 2.0 ± 0.2。虽然我们可以使用偏导数,但来看蒙特卡罗如何以概念方式处理这一问题:

for each of 10,000 iterations:
   x_sample = random value from normal(mean=10.0, std=0.5)
   y_sample = random value from normal(mean=2.0, std=0.2)
   z_sample = x_sample² / y_sample
  
result = mean of all z_samples = 50.2
uncertainty = standard deviation of z_samples = 5.3

这种方法的优势在于:

  • 适用于任意分布类型:输入不必是正态分布。
  • 自然处理相关性:还记得相关的周长测量吗?蒙特卡罗可以直接生成相关的随机样本。
  • 完整的输出画像:可获得结果的完整分布,揭示偏度或多峰性,而不仅仅是标准差所能体现的。
  • 适用于复杂逻辑:包含 if/then 条件或 min/max 运算的函数也能处理。

那么,何时应优先选择蒙特卡罗而非解析方法?可在以下情况下考虑:

  • 函数包含条件语句或迭代计算。
  • 变量服从非正态分布(均匀分布、指数分布等)。
  • 需要完整的输出分布,而不仅仅是其标准差。
  • 解析方法需要复杂导数,且我们不确定能否可靠计算。

在实际应用中,通常 10,000 个样本即可提供较好的估计,而 100,000 个样本可获得更高精度。对简单函数而言,现代计算机在数秒内即可完成这些模拟。

计算方面的考量

对于计算量巨大的模型(如有限元模拟或气候模型),一次计算可能耗时数小时,此时可采用代理模型。

代理模型是对复杂模型行为进行近似的简化数学函数,是更快速的替代方案,能够捕捉原始模型的输入-输出关系。

但对于大多数数据分析任务,直接的蒙特卡罗模拟在准确性与简便性之间达到了理想平衡。

结语

本文介绍了误差传播,这一理解测量不确定性如何影响计算结果的数学框架。我们学习了不确定性在不同数学运算中的基本传播规则,理解了变量间相关性对不确定性计算的影响,并探讨了在复杂情景下作为计算替代方案的蒙特卡罗模拟。

若您希望在真实应用中进一步提升处理不确定性与统计分析的能力,欢迎探索我们Machine Learning Scientist with Python 学习路径。该路径涵盖监督与无监督学习、特征工程、时间序列分析与深度学习,这些领域都需要理解不确定性与误差分析,以评估模型性能、置信区间,并在数据科学项目中做出可靠预测。

Arunn Thevapalan

作者

Arunn Thevapalan

作为一名高级数据科学家,我设计、开发并部署大规模机器学习解决方案,帮助企业做出更明智的数据驱动决策。作为数据科学写作者,我分享所学心得、职业建议以及深入的实践型教程。

FAQs

将带不确定性的测量值相加时,我需要直接相加不确定性吗?

不,您应按平方和开根(平方和的平方根)相加。对于 z = x + y,不确定性为 σz = √(σₓ² + σᵧ²),而不是 σₓ + σᵧ。

哪种数学运算对不确定性的放大最大?

幂与开方会显著放大不确定性。对于 z = xⁿ,相对不确定性会被 |n| 放大,因此立方会将相对不确定性提升为三倍。

何时应使用蒙特卡罗模拟而不是解析公式?

当涉及条件逻辑、非正态分布或复杂非线性函数时,请使用蒙特卡罗模拟。当您需要完整的输出分布时,它也非常理想。

在何种情况下可以忽略测量之间的相关性?

当测量使用不同仪器、在不同时间进行,或与其他不确定性来源相比相关性可忽略时,您可以忽略相关性。

相关性是否总会增加不确定性?

不一定。正相关会增加不确定性,但负相关实际上可能降低不确定性。影响取决于相关系数的符号与大小。

主题