前文链接:随机变量在代数运算中的误差传播(1/2)
六、说明
在前文中,我们讲述支配不确定性如何在不同运算中传播的数学规则,并探索量化不确定性的方法。但仅仅考虑随机变量之间相互独立的情形,然而,假如不独立,将有什么变化?本文将继续探讨相关议题。
七、误差传播中的相关性和协方差
我们目前的误差传播公式假设不确定性是独立的,但如果它们不是独立的,会发生什么情况呢?
不确定性之间的相关性比我们预想的更为常见,并且会对我们的结果产生显著影响。当测量值共享同一不确定性来源时,就会出现相关性。
试想一下,用同一把尺子测量一块金属块的长度和宽度。如果这把尺子实际短了1%,那么这两个测量值都会受到相同的系统性影响,并且它们呈正相关。类似地,如果温度影响实验中的多个传感器,那么同一时刻采集的所有读数都会受到这种环境影响。
当一个测量值往往较高,而另一个测量值也往往较高时(正相关),或者当一个测量值往往较高,而另一个测量值往往较低时(负相关),我们必须在不确定性计算中考虑这种关系。
当变量之间存在相关性时,我们在传播公式中引入协方差项 σₓᵧ。对于两个相关变量,其相关系数为 ρ:
σ x y = ρ σ x σ γ σ_{xy} = ρσₓσᵧ σxy=ρσxσγ
完整的加法公式为:
σ z 2 = σ x 2 + σ y 2 + 2 ρ σ x σ y σ_z² = σₓ² + σ_y² + 2ρσₓσ_y σz2=σx2+σy2+2ρσxσy
我们通过一个例子来更好地理解这个概念。
让我们测量一块高温下矩形金属板的周长。我们测得长度 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
σ p = [ ( 2 × 0.1 ) 2 + ( 2 × 0.05 ) 2 ] = [ 0.04 + 0.01 ] = 0.22 c m σₚ = \sqrt{[(2 × 0.1)² + (2 × 0.05)²] }= \sqrt{[0.04 + 0.01]} = 0.22 cm σp=[(2×0.1)2+(2×0.05)2] =[0.04+0.01] =0.22cm
然而,热膨胀对这两个维度的影响类似。如果我们确定相关系数为 ρ = 0.7(强正相关):
相关项 = 2 × 2 × 2 × 0.7 × 0.1 × 0.05 = 0.028 相关项= 2 × 2 × 2 × 0.7 × 0.1 × 0.05 = 0.028 相关项=2×2×2×0.7×0.1×0.05=0.028
σ p = [ 0.04 + 0.01 + 0.028 ] = 0.078 = 0.28 c m σₚ = \sqrt{[0.04 + 0.01 + 0.028]} =\sqrt{0.078 = 0.28 cm} σp=[0.04+0.01+0.028] =0.078=0.28cm
忽略相关性会低估我们的不确定性约 25%,这是一个可能影响我们结论的显著差异。
在以下情况下我们应该考虑协方差:
• 多次测量使用同一仪器或校准标准。
• 环境条件(温度、压力、湿度)会同时影响所有测量结果。
• 变量之间存在已知的物理关系(例如维度一起膨胀)。
当测量结果真正独立、使用不同仪器、在不同时间进行测量,或者相关性相对于其他不确定性来源可以忽略不计时,我们可以忽略协方差。如有疑问,如果改变条件会使两次测量结果朝同一方向变化,则它们很可能相关,这应在分析中加以考虑。
八、蒙特卡罗方法
当函数涉及条件逻辑、迭代计算或复杂的非线性关系时,蒙特卡罗模拟是一个很好的替代方案。
8.1 蒙特卡罗模拟
蒙特卡罗模拟采用直接的方法:不通过公式传播不确定性,而是模拟数千种可能的场景并观察结果的分布。
流程如下:
- 从每个输入变量的分布中生成随机样本。
- 计算每组样本的结果。
- 分析输出分布情况以确定不确定性。
您可以通过我们的详细指南学习如何在 Excel 中进行蒙特卡罗模拟。但是,为了使本教程更加完整,让我们再回顾一下分析方法变得复杂的场景。
8.2 一个具体示例
考虑函数 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
8.3 这种方法的优点
使用蒙特卡罗方法优点:
- 可处理任何分布类型:我们的输入不需要服从正态分布。
- 自然相关性处理:还记得我们之前讨论的相关周长测量吗?蒙特卡罗方法可以直接生成相关的随机样本。
- 完整输出图:我们获得了结果的完整分布,揭示了仅凭标准差可能无法解释的偏斜或多个峰值。
- 可处理复杂逻辑:可处理带有 if/then 条件或 min/max 操作的函数。
8.4 使用蒙特卡罗方法的时机
那么,我们应该在什么情况下选择蒙特卡罗方法而不是解析方法呢?我们可以考虑在
- 我们的函数涉及条件语句或迭代计算。
- 变量服从非正态分布(均匀分布、指数分布等)。
- 我们需要完整的输出分布,而不仅仅是它的标准差。
- 分析方法需要复杂的导数,而我们没有信心计算这些导数。
在实际应用中,10,000 个样本通常能为大多数应用提供良好的估计值,而 100,000 个样本则能提供更高的精度。现代计算机可以在几秒钟内完成简单函数的模拟。
8.5 计算方面的考虑
对于计算密集型模型,例如有限元模拟或气候模型,一次计算可能需要数小时,因此代理模型非常适用。
代理模型是简化的数学函数,可以近似表示复杂模型的行为,是一种更快的替代方案,能够捕捉原始模型的输入输出关系。
然而,对于大多数数据分析任务而言,直接蒙特卡罗模拟提供了准确性和简便性的理想平衡。
九、一些问题
1 当添加具有不确定度的测量值时,是否直接添加不确定度?
不,你应该用平方根法(平方和的平方根)将它们相加。对于 z = x + y,不确定度为 σ z = ( σ x 2 + σ γ 2 ) σ_z = \sqrt{(σₓ ² + σᵧ ² )} σz=(σx2+σγ2) ,而不是 σₓ + σᵧ。
2 哪种数学运算最能放大不确定性?
幂运算和根运算会显著放大不确定性。对于 z = xⁿ,相对不确定性会乘以 |n|,因此对一个值进行立方运算会使它的相对不确定性增加三倍。
3 什么时候应该使用蒙特卡罗模拟而不是解析公式?
当处理条件逻辑、非正态分布或复杂的非线性函数时,可以使用蒙特卡罗方法。当您需要完整的输出分布时,它也是理想之选。
4 什么情况下我可以忽略测量结果之间的相关性?
当使用不同的仪器在不同的时间进行测量,或者相关性与其他不确定因素相比可以忽略不计时,可以忽略相关性。
5 相关性总是会增加不确定性吗?
不,正相关会增加不确定性,而负相关实际上可以降低不确定性。这种影响取决于相关系数的符号和大小。