此条目的主題是蒙特卡洛模拟中的方差减少技术。关于科学实验中的控制变量,請見「
控制變數 」。
控制变量法 (英語:control variates )是在蒙特卡洛方法 中用于减少方差 的一种技术方法。该方法通过对已知量的了解来减少对未知量估计的误差。
假设要估计的参数为
μ
{\displaystyle \mu }
。同时对于统计
m
{\displaystyle m}
,其期望值 为
μ
{\displaystyle \mu }
:
E
[
m
]
=
μ
{\displaystyle \mathbb {E} \left[m\right]=\mu }
,即
m
{\displaystyle m}
是
μ
{\displaystyle \mu }
的无偏差估计 。此时,对于另一个统计
t
{\displaystyle t}
,已知
E
[
t
]
=
τ
{\displaystyle \mathbb {E} \left[t\right]=\tau }
。于是,
m
⋆
=
m
+
c
(
t
−
τ
)
{\displaystyle m^{\star }=m+c\left(t-\tau \right)\,}
也是
μ
{\displaystyle \mu }
的无偏差估计,
c
{\displaystyle c}
为任一给定系数。
m
⋆
{\displaystyle m^{\star }}
的方差为
Var
(
m
⋆
)
=
Var
(
m
)
+
c
2
Var
(
t
)
+
2
c
Cov
(
m
,
t
)
;
{\displaystyle {\textrm {Var}}\left(m^{\star }\right)={\textrm {Var}}\left(m\right)+c^{2}\,{\textrm {Var}}\left(t\right)+2c\,{\textrm {Cov}}\left(m,t\right);}
可以证明,使得方差最小的系数
c
{\displaystyle c}
为
c
⋆
=
−
Cov
(
m
,
t
)
Var
(
t
)
;
{\displaystyle c^{\star }=-{\frac {{\textrm {Cov}}\left(m,t\right)}{{\textrm {Var}}\left(t\right)}};}
此时,对应的方差则为
Var
(
m
⋆
)
=
Var
(
m
)
−
[
Cov
(
m
,
t
)
]
2
Var
(
t
)
=
(
1
−
ρ
m
,
t
2
)
Var
(
m
)
;
{\displaystyle {\begin{aligned}{\textrm {Var}}\left(m^{\star }\right)&={\textrm {Var}}\left(m\right)-{\frac {\left[{\textrm {Cov}}\left(m,t\right)\right]^{2}}{{\textrm {Var}}\left(t\right)}}\\&=\left(1-\rho _{m,t}^{2}\right){\textrm {Var}}\left(m\right);\end{aligned}}}
其中
ρ
m
,
t
=
Corr
(
m
,
t
)
{\displaystyle \rho _{m,t}={\textrm {Corr}}\left(m,t\right)\,}
为
m
{\displaystyle m}
与
t
{\displaystyle t}
之间的相关系数 。
|
ρ
m
,
t
|
{\displaystyle \vert \rho _{m,t}\vert }
越大时,方差越小。
当
Cov
(
m
,
t
)
{\displaystyle {\textrm {Cov}}\left(m,t\right)}
、
Var
(
t
)
{\displaystyle {\textrm {Var}}\left(t\right)}
或
ρ
m
,
t
{\displaystyle \rho _{m,t}\;}
未知时,可以通过蒙特卡洛模拟进行估计。由于该方法相当于一个最小二乘法 系统,又被称为回归抽样 (regression sampling )。
假设我们要使用蒙特卡洛方法估计
I
=
∫
0
1
1
1
+
x
d
x
,
{\displaystyle I=\int _{0}^{1}{\frac {1}{1+x}}\,\mathrm {d} x,}
即估计
f
(
U
)
=
1
1
+
U
{\displaystyle f(U)={\frac {1}{1+U}}}
的期望值。其中,
U
{\displaystyle U}
满足均匀分布 。假设有n 个样本
u
1
,
⋯
,
u
n
{\displaystyle u_{1},\cdots ,u_{n}}
,该估计可表示为
I
≈
1
n
∑
i
f
(
u
i
)
;
{\displaystyle I\approx {\frac {1}{n}}\sum _{i}f(u_{i});}
此时,我们引入控制变量
g
(
U
)
=
1
+
U
{\displaystyle g(U)=1+U}
,其已知期望值为
E
[
g
(
U
)
]
=
∫
0
1
(
1
+
x
)
d
x
=
3
2
{\displaystyle \mathbb {E} \left[g\left(U\right)\right]=\int _{0}^{1}(1+x)\,\mathrm {d} x={\tfrac {3}{2}}}
。由此,可以得到新的估计
I
≈
1
n
∑
i
f
(
u
i
)
+
c
(
1
n
∑
i
g
(
u
i
)
−
3
/
2
)
.
{\displaystyle I\approx {\frac {1}{n}}\sum _{i}f(u_{i})+c\left({\frac {1}{n}}\sum _{i}g(u_{i})-3/2\right).}
以下为
n
=
1500
{\displaystyle n=1500}
并使用估计的最优系数
c
⋆
≈
0.4773
{\displaystyle c^{\star }\approx 0.4773}
时,一次蒙特卡洛模拟所给出的积分估计值:
估计
标准差
普通模拟
0.69475
0.01947
控制变量法
0.69295
0.00060