0. 绝对误差与相对误差
一般的,称 x ∗ x^* x∗为准确值 x x x的一个近似值,可定义以下两种常用误差:
0.1绝对误差(简称误差):
绝对误差(简称误差):
e
(
x
∗
)
=
x
−
x
∗
e(x^*)=x-x^*
e(x∗)=x−x∗
为方便起见,取其一上界
ϵ
\epsilon
ϵ使满足
∣
x
−
x
∗
∣
≤
ϵ
|x-x^*|\le\epsilon
∣x−x∗∣≤ϵ(这个上界不唯一),由此我们最常见的误差写法就可写成
x
=
x
∗
±
ϵ
x=x^*\pm\epsilon
x=x∗±ϵ,即准确值
x
x
x必在区间
[
x
∗
−
ϵ
,
x
∗
+
ϵ
]
[x^*-\epsilon,x^*+\epsilon]
[x∗−ϵ,x∗+ϵ]内。
0.2相对误差
考虑真值本身的数量大小,相对误差是衡量精度的更好指标,定义为:
e
r
(
x
∗
)
=
x
−
x
∗
x
e_r(x^*)=\frac{x-x^*}{x}
er(x∗)=xx−x∗,相似的,我们亦可取一个上界为
ϵ
r
\epsilon_r
ϵr,称之为相对误差限。
1. 误差的传播
误差的传播系指分析在形如
y
=
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
y=f(x_1,x_2,...,x_n)
y=f(x1,x2,...,xn)的关系中,参量误差对变量误差的影响有多大。误差的传播与函数的微分紧密相关,本质是在利用当
Δ
x
\Delta x
Δx不大时,
Δ
y
≈
∂
f
∂
x
Δ
x
\Delta y\approx \frac{\partial f}{\partial x}\Delta x
Δy≈∂x∂fΔx。
若
f
f
f在
(
x
1
∗
,
.
.
.
x
n
∗
)
(x^*_1,...x^*_n)
(x1∗,...xn∗)可微,则不难得到:
这实际上就是一阶泰勒展开。多变量泰勒公式为:
f
(
x
)
=
f
(
a
)
+
∇
f
(
a
)
⋅
(
x
−
a
)
+
.
.
.
f(x)=f(\bf{a})+\nabla{f(\bf{a})\cdot(\bf{x}-\bf{a})}+...
f(x)=f(a)+∇f(a)⋅(x−a)+...
移项,令
a
\bf a
a为
(
x
1
∗
,
.
.
.
x
n
∗
)
(x^*_1,...x^*_n)
(x1∗,...xn∗)并带入
e
(
x
∗
)
=
x
−
x
∗
e(x^*)=x-x^*
e(x∗)=x−x∗,
e
(
y
∗
)
=
y
−
y
∗
e(y^*)=y-y^*
e(y∗)=y−y∗即可得误差公式。
按照上面的式子求导,可给出最常见 和 差 积 商 误差公式:
相应的,误差限可如下给出:
2. 方差传播
仍考虑形如 y = f ( x 1 , x 2 , . . . , x n ) y=f(x_1,x_2,...,x_n) y=f(x1,x2,...,xn)的关系,方差传播既是通过 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)的不确定度分析 y y y的不确定度。该问题有时也称为方差的合成。
2.1 简单线性函数
对于简单的函数关系(如加减等),这个方差传播既可用“随机变量函数的分布”这一手段予以求解。即已知随机变量 X 及它的分布,如何求其函数 Y = g ( X ) Y=g(X) Y=g(X)的分布。这是本科概率统计课程的经典内容,不再赘述,通过累次积分可处理形如 Z = X + Y Z=X+Y Z=X+Y这类简单形式的概率密度,之后便可求均值方差等所有统计量。
2.2 复杂函数
对绝大多数函数,尤其是非线性函数,一般只能寻求其期望和方差的近似求法。这里解决问题的工具依旧是泰勒展开。
先考虑简单的一维情形:设随机变量
X
X
X,其期望和方差分别为
μ
,
σ
2
\mu,\sigma^2
μ,σ2,变量
Y
=
g
(
X
)
Y=g(X)
Y=g(X)是其函数。则有:
证明此关系只需将
Y
Y
Y在
μ
\mu
μ处局部线性化即可。
相似的,方差公式的证明可进行一阶展开后得到。虽避免了求积分,但此处导数往往也得不到解析解,可通过数值差分近似导数得到(一般倾向于使用中心差分公式)。
再看二维情形。一维到二维是一个质变,从两个变量开始,变量相关性和协方差的概念被引入。设随机变量向量
[
X
,
Y
]
T
[X,Y]^T
[X,Y]T中的变量
X
,
Y
X,Y
X,Y的期望,方差分别为
μ
x
,
μ
y
,
σ
x
2
,
σ
y
2
\mu _x, \mu _y, \sigma _x^2, \sigma _y^2
μx,μy,σx2,σy2,并设二元函数
Z
=
g
(
X
,
Y
)
Z=g(X,Y)
Z=g(X,Y)。则仍仿照上面单变量的方法,将
Z
Z
Z在自变量期望处进行局部线性化然后两边同取期望/方差即可,只不过换为了多变量的泰勒展开。
注: 多变量泰勒展开
更常见的是向量形式:
最后结果是:
可以看到依赖于变量的协方差。
除了上面直接将函数局部线性化的方法,亦可以使用类似“自底向下”的方法,从方差原始定义入手得到上面的结果。
仍设随机变量
X
X
X及其一组观测
{
X
1
,
X
2
,
.
.
.
X
n
}
\{X_1,X_2,...X_n\}
{X1,X2,...Xn},
Y
Y
Y及其一组观测
{
Y
1
,
Y
2
,
.
.
.
Y
n
}
\{Y_1,Y_2,...Y_n\}
{Y1,Y2,...Yn},他们的期望,方差分别为
μ
x
,
μ
y
,
σ
x
2
,
σ
y
2
\mu _x, \mu _y, \sigma _x^2, \sigma _y^2
μx,μy,σx2,σy2,二元函数
Z
=
g
(
X
,
Y
)
Z=g(X,Y)
Z=g(X,Y)。
则按方差定义
σ
Z
=
1
n
−
1
∑
i
=
1
n
(
Z
i
−
Z
ˉ
)
2
\sigma_Z=\frac{1}{n-1}\sum_{i=1}^{n}{(Z_i-\bar Z)^2}
σZ=n−11i=1∑n(Zi−Zˉ)2
通过对 Z = g ( X , Y ) Z=g(X,Y) Z=g(X,Y)在期望处求一阶泰勒展开,可知 Z i − Z ˉ = ( X i − X ˉ ) ∂ g ∂ X + ( Y i − Y ˉ ) ∂ g ∂ Y Z_i-\bar Z=(X_i-\bar X)\frac{\partial g}{\partial X}+(Y_i-\bar Y)\frac{\partial g}{\partial Y} Zi−Zˉ=(Xi−Xˉ)∂X∂g+(Yi−Yˉ)∂Y∂g带回上式,并带入协方差定义: c o v ( X , Y ) = 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) cov(X,Y)=\frac{1}{n-1}\sum_{i=1}^{n}(X_i-\bar X)(Y_i-\bar Y) cov(X,Y)=n−11i=1∑n(Xi−Xˉ)(Yi−Yˉ)
可化简得:
σ Z 2 = 1 n − 1 ∑ i = 1 n [ ( X i − X ˉ ) ∂ g ∂ X + ( Y i − Y ˉ ) ∂ g ∂ Y ] 2 \sigma_Z^2=\frac{1}{n-1}\sum_{i=1}^{n}[(X_i-\bar X)\frac{\partial g}{\partial X}+(Y_i-\bar Y)\frac{\partial g}{\partial Y}]^2 σZ2=n−11i=1∑n[(Xi−Xˉ)∂X∂g+(Yi−Yˉ)∂Y∂g]2
= σ x 2 ( ∂ g ∂ X ) 2 + σ y 2 ( ∂ g ∂ Y ) 2 + 2 c o v ( X , Y ) ∂ g ∂ X ∂ g ∂ Y =\sigma_x^2(\frac{\partial g}{\partial X})^2+\sigma_y^2(\frac{\partial g}{\partial Y})^2+2cov(X,Y)\frac{\partial g}{\partial X}\frac{\partial g}{\partial Y} =σx2(∂X∂g)2+σy2(∂Y∂g)2+2cov(X,Y)∂X∂g∂Y∂g
写成向量形式即为:
σ
Z
2
=
J
Σ
J
T
\sigma_Z^2=J\Sigma J^T
σZ2=JΣJT
其中
J
=
[
∂
g
∂
X
,
∂
g
∂
Y
]
J=[\frac{\partial g}{\partial X},\frac{\partial g}{\partial Y}]
J=[∂X∂g,∂Y∂g]为Jacobian matrix,
中间
Σ
\Sigma
Σ是协方差矩阵
一些计算实例:
对于线性函数和二次函数, 由于其二阶以上各阶导数为0, 近似计算公式与严密计算公式等价。对于非线性更强的函数,由于我们是以期望为中心展开的,
X
i
X_i
Xi很多时候并不在展开点
X
ˉ
\bar X
Xˉ“附近”,会有不小的误差,可适时地考虑使用蒙特卡洛模拟暴力计算得到更优的结果。
一个常被用于测试的强非线性函数是
Z
=
X
e
Y
Z=Xe^Y
Z=XeY,图像长这样:
3. 协方差传播
当上面问题中的函数值域亦是多维的,方差传播就升格为协方差传播。
先看线性情形,设多维随机变量X:
设
Z
=
[
k
1
,
k
2
,
.
.
.
,
k
n
]
X
+
k
0
Z=[k_1,k_2,...,k_n]X+k_0
Z=[k1,k2,...,kn]X+k0为
X
X
X的一线性函数,根据前面方差传播的知识可知有:
E
(
Z
)
=
K
μ
x
+
k
0
;
D
Z
Z
=
K
D
X
X
K
T
E(Z)=K\mu_x+k_0 ; D_{ZZ}=KD_{XX}K^T
E(Z)=Kμx+k0;DZZ=KDXXKT
将其中的
Z
Z
Z扩展到多维,即设
Z
=
[
z
1
,
z
2
,
.
.
.
,
z
t
]
T
Z=[z_1,z_2,...,z_t]^T
Z=[z1,z2,...,zt]T,其中每个
z
i
z_i
zi均是
X
X
X的线性函数(
z
i
=
[
k
i
,
1
,
.
.
.
,
k
i
,
n
]
X
i
z_i=[k_{i,1},...,k_{i,n}]X_i
zi=[ki,1,...,ki,n]Xi)
那么对:
Z
=
K
X
+
K
0
Z=KX+K_0
Z=KX+K0
其中
K
K
K为
t
∗
n
t*n
t∗n矩阵,
K
0
K_0
K0为
t
∗
1
t*1
t∗1矩阵,依旧有相同的结论:
E
(
Z
)
=
K
μ
x
+
k
0
;
D
Z
Z
=
K
D
X
X
K
T
E(Z)=K\mu_x+k_0 ; D_{ZZ}=KD_{XX}K^T
E(Z)=Kμx+k0;DZZ=KDXXKT
只不过这里
D
Z
Z
D_{ZZ}
DZZ升格为了
t
∗
t
t*t
t∗t矩阵,称之为协方差传播。
若另有Y:
并有关于
Y
Y
Y的函数
W
=
F
Y
+
F
0
W=FY+F_0
W=FY+F0,则相似的可获知一系列关系常用协方差传播律:
D
Z
Z
=
K
D
X
X
K
T
D_{ZZ}=KD_{XX}K^T
DZZ=KDXXKT
D
W
W
=
F
D
Y
Y
F
T
D_{WW}=FD_{YY}F^T
DWW=FDYYFT
D
Z
W
=
K
D
X
Y
F
T
D_{ZW}=KD_{XY}F^T
DZW=KDXYFT
D
W
Z
=
F
D
Y
X
K
T
D_{WZ}=FD_{YX}K^T
DWZ=FDYXKT
4. 参考文献
https://www.cnas.org.cn/fwzl/images/tc261sc1sysrkfjswyh/tzgg/2015/03/24/70E459F9EA361F6C3F4C675277B5CF3C.pdf
https://wenku.baidu.com/view/960f3cd7b8f67c1cfbd6b826.html
https://wenku.baidu.com/view/4d8b1945581b6bd97f19eaab.html
https://www.ucl.ac.uk/~ucfbpve/geotopes/indexch10.html
概率论与数理统计教程(茆诗松)