此條目的主題是蒙特卡洛模擬中的方差減少技術。關於科學實驗中的控制變量,請見「
控制變數 」。
控制變量法 (英語: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