コンテンツにスキップ

Monte Carlo 積分と分散低減:重点サンプリング・制御変量・層別

対象読者: 本テーマ第 1〜2 章の内容と、大数の法則・中心極限定理、条件付き期待値を学んだ人。Monte Carlo 法や分散低減の知識は仮定しません。

前提となる記事:分布からの標本抽出:逆関数法・棄却法・正規乱数・離散分布、大数の法則と中心極限定理:標本平均はどこへ、どれだけ速く近づくか、条件付き期待値:σ-加法族で条件づけ、ラドン・ニコディムで存在を保証する

生 Markdown

たくさんの変数が入った積分は、式のとおりに計算するとあっという間に手に負えなくなります。そこで、乱数を何回も引いて、その結果の平均から積分の値を見積もる、というやり方があります。この記事では、その見積もりがどれだけ当たるか(誤差をどう言い表すか)と、同じ回数の乱数でもっと当てる工夫(分散低減)を、証明つきで学びます。読み終えると、推定値に誤差の幅を添えて報告でき、目的に合わせて工夫を選べるようになります。

  • 積分 I=E[f(X)]I = \mathbb{E}[f(X)] を標本平均で推定すると、推定量は不偏で、平均二乗誤差の平方根は σ/N\sigma/\sqrt N です。この速さは次元によりません。標本分散から標準誤差を推定でき、中心極限定理と Slutsky の定理(確率収束する量で割っても分布収束が保たれるという定理)から漸近信頼区間が得られます(定理 2.2)。
  • dd 次元で rr 階の滑らかさを使う積型求積則の誤差は N−r/dN^{-r/d} の程度で、d>2rd > 2r では Monte Carlo 法の N−1/2N^{-1/2} が上回ります(定理 3.1)。
  • Monte Carlo 法の改良は、指数 −1/2-1/2 ではなく定数 σ\sigma を小さくすることです。対称変量は単調な被積分関数で分散を減らし(定理 4.3)、制御変量は相関 ρ\rho のある既知の量を使って分散を (1−ρ2)(1 - \rho^2) 倍にします(定理 4.5)。
  • 層別サンプリングの比例配分は、分散から層間の成分を取り除きます(定理 5.4)。条件付き期待値で置き換えた推定量の分散は元より大きくなりません(命題 5.2)。
  • 重点サンプリングの分散は ∫f2p2/q−I2\int f^2p^2/q - I^2 で、最適な提案密度は ∣f∣p|f|p に比例します。提案の裾が目標より軽いと分散が無限大になります(定理 6.2、例 6.3)。
  • 正規化定数が未知のときは自己正規化推定量を使います。一致性をもち、偏りは O(1/N)O(1/N) です(命題 6.6)。

dd 次元の積分を数値的に求めるとき、各軸に nn 個の点を置く求積則は N=ndN = n^d 回の関数評価を要します。d=10d = 10 で各軸にわずか 10 点でも 101010^{10} 回です。統計力学の分配関数、Bayes 統計の事後期待値、金融派生商品の価格、粒子輸送の計算では、dd は数十から数百万に及びます。

Monte Carlo 法は、積分を期待値 I=E[f(X)]I = \mathbb{E}[f(X)] とみて、独立な標本 X1,…,XNX_1, \ldots, X_N の平均 1N∑f(Xi)\frac1N\sum f(X_i) で推定します。大数の法則が収束を、中心極限定理が誤差の大きさ σ/N\sigma/\sqrt N を保証します(極限定理の 例 6.4[大数の法則と中心極限定理] で π\pi の推定を例に見ました)。N−1/2N^{-1/2} は遅い収束です。精度を 1 桁上げるのに 100 倍の標本が要ります。しかしこの指数は次元に依存しません。高次元では、遅くても次元によらない方法が、速くても次元とともに劣化する方法に勝ちます。

この章の主題は 2 つあります。第一に、推定値に誤差を付けることです。Monte Carlo 法の出力は確率変数なので、「0.78610.7861」という数値だけでは情報がなく、「0.7861±0.00040.7861 \pm 0.0004」と標準誤差を添えてはじめて結果になります。その根拠が §2 の定理です。第二に、同じ計算量で誤差を小さくすることです。指数 −1/2-1/2 は独立な標本を使うかぎり変えられませんが、定数 σ\sigma は推定量の作り方で何桁も変わります。§4〜§6 で、代表的な 5 つの方法の分散を定理として評価します。

以下、確率・期待値・分散を P\mathbb{P}、E\mathbb{E}、Var\mathrm{Var} と書き、定義と基本性質は確率変数と期待値(定義 4.1[確率変数と期待値]、定義 5.1[確率変数と期待値])に従います。

定義 2.1(Monte Carlo 推定量・標準誤差)↗

XX を確率変数(Rd\mathbb{R}^d 値でよい)、ff を f(X)f(X) が可積分になる可測関数とし、I=E[f(X)]I = \mathbb{E}[f(X)] を求めたい量とする。XX と同じ分布に従う独立な確率変数 X1,…,XNX_1, \ldots, X_N に対して

I^N=1N∑i=1Nf(Xi)\hat I_N = \frac1N\sum_{i=1}^N f(X_i)

を II の Monte Carlo 推定量という。σ2=Var(f(X))\sigma^2 = \mathrm{Var}(f(X)) が有限のとき、σ/N\sigma/\sqrt N を I^N\hat I_N の標準誤差という。標本分散

sN2=1N−1∑i=1N(f(Xi)−I^N)2(N≥2)s_N^2 = \frac{1}{N-1}\sum_{i=1}^N\bigl(f(X_i) - \hat I_N\bigr)^2 \qquad (N \ge 2)

を使った sN/Ns_N/\sqrt N を標準誤差の推定値という。

定理 2.2(Monte Carlo 推定量の誤差)✓

定義 2.1 の設定で次が成り立つ。

  1. E[I^N]=I\mathbb{E}[\hat I_N] = I であり、N→∞N \to \infty で I^N→I\hat I_N \to I(概収束)。
  2. σ2<∞\sigma^2 < \infty ならば Var(I^N)=σ2/N\mathrm{Var}(\hat I_N) = \sigma^2/N で、平均二乗誤差の平方根は E[(I^N−I)2]=σ/N\sqrt{\mathbb{E}[(\hat I_N - I)^2]} = \sigma/\sqrt N である。
  3. σ2<∞\sigma^2 < \infty ならば E[sN2]=σ2\mathbb{E}[s_N^2] = \sigma^2 であり、sN2→σ2s_N^2 \to \sigma^2(概収束)。
  4. 0<σ2<∞0 < \sigma^2 < \infty ならば、TN=N(I^N−I)/sNT_N = \sqrt N(\hat I_N - I)/s_N(sN=0s_N = 0 のときは TN=0T_N = 0 と定める)は標準正規分布に分布収束する。したがって任意の z>0z > 0 について lim⁡N→∞P(I^N−zsNN≤I≤I^N+zsNN)=2Φ(z)−1\lim_{N\to\infty}\mathbb{P}\Bigl(\hat I_N - z\frac{s_N}{\sqrt N} \le I \le \hat I_N + z\frac{s_N}{\sqrt N}\Bigr) = 2\Phi(z) - 1 である(Φ\Phi は標準正規分布の分布関数)。
証明(定理 2.2)

Yi=f(Xi)Y_i = f(X_i) と置きます。Y1,Y2,…Y_1, Y_2, \ldots は独立同分布で、E[Yi]=I\mathbb{E}[Y_i] = I です。

1. 期待値の線形性から E[I^N]=1N∑iE[Yi]=I\mathbb{E}[\hat I_N] = \frac1N\sum_i\mathbb{E}[Y_i] = I です。概収束は大数の強法則(定理 4.5[大数の法則と中心極限定理])です。

2. 独立な Yi,YjY_i, Y_j(i≠ji \ne j)の共分散は 00 なので(命題 7.5[確率変数と期待値])、分散の和の公式(命題 5.3[確率変数と期待値] の 2 と 4)から Var(I^N)=1N2∑iVar(Yi)=σ2/N\mathrm{Var}(\hat I_N) = \frac{1}{N^2}\sum_i\mathrm{Var}(Y_i) = \sigma^2/N です。E[I^N]=I\mathbb{E}[\hat I_N] = I なので E[(I^N−I)2]=Var(I^N)\mathbb{E}[(\hat I_N - I)^2] = \mathrm{Var}(\hat I_N) です。

3. ∑i(Yi−I^N)2=∑iYi2−NI^N2\sum_i(Y_i - \hat I_N)^2 = \sum_iY_i^2 - N\hat I_N^2 なので

sN2=NN−1(1N∑i=1NYi2−I^N2)s_N^2 = \frac{N}{N-1}\Bigl(\frac1N\sum_{i=1}^NY_i^2 - \hat I_N^2\Bigr)

です。期待値を取ると、E[Yi2]=σ2+I2\mathbb{E}[Y_i^2] = \sigma^2 + I^2 と E[I^N2]=Var(I^N)+I2=σ2/N+I2\mathbb{E}[\hat I_N^2] = \mathrm{Var}(\hat I_N) + I^2 = \sigma^2/N + I^2 から

E[sN2]=NN−1(σ2+I2−σ2N−I2)=σ2\mathbb{E}[s_N^2] = \frac{N}{N-1}\Bigl(\sigma^2 + I^2 - \frac{\sigma^2}{N} - I^2\Bigr) = \sigma^2

です。概収束については、Yi2Y_i^2 は可積分な独立同分布の列なので、大数の強法則から 1N∑Yi2→σ2+I2\frac1N\sum Y_i^2 \to \sigma^2 + I^2、また 1 から I^N2→I2\hat I_N^2 \to I^2、N/(N−1)→1N/(N-1) \to 1 です。よって sN2→σ2s_N^2 \to \sigma^2 です。

4. 中心極限定理(定理 5.6[大数の法則と中心極限定理])から ZN=N(I^N−I)/σZ_N = \sqrt N(\hat I_N - I)/\sigma は標準正規分布に分布収束します。RNR_N を、sN>0s_N > 0 のとき sN/σs_N/\sigma、sN=0s_N = 0 のとき 11 と定めます。3 から sN→σ>0s_N \to \sigma > 0(概収束)なので RN→1R_N \to 1(概収束)で、確率収束もします(定理 3.6[大数の法則と中心極限定理] の 1)。Slutsky の定理(命題 6.1[大数の法則と中心極限定理])から ZN/RNZ_N/R_N は標準正規分布に分布収束します。TNT_N と ZN/RNZ_N/R_N が異なるのは sN=0s_N = 0 のときだけで、その確率は 00 に収束するので、TN−ZN/RNT_N - Z_N/R_N は 00 に確率収束し、再び Slutsky の定理(和の形)から TNT_N も標準正規分布に分布収束します。

区間の式を示します。sN>0s_N > 0 のとき、II が区間に入ることは ∣TN∣≤z|T_N| \le z と同値です。Φ\Phi は連続なので、分布収束(定義 3.4[大数の法則と中心極限定理])からすべての xx で P(TN≤x)→Φ(x)\mathbb{P}(T_N \le x) \to \Phi(x) です。任意の ε>0\varepsilon > 0 について P(TN≤−z−ε)≤P(TN<−z)≤P(TN≤−z)\mathbb{P}(T_N \le -z - \varepsilon) \le \mathbb{P}(T_N < -z) \le \mathbb{P}(T_N \le -z) で、両端は Φ(−z−ε)\Phi(-z - \varepsilon) と Φ(−z)\Phi(-z) に収束し、ε→0\varepsilon \to 0 で一致するので、P(TN<−z)→Φ(−z)\mathbb{P}(T_N < -z) \to \Phi(-z) です。よって

P(∣TN∣≤z)=P(TN≤z)−P(TN<−z)→Φ(z)−Φ(−z)=2Φ(z)−1\mathbb{P}(|T_N| \le z) = \mathbb{P}(T_N \le z) - \mathbb{P}(T_N < -z) \to \Phi(z) - \Phi(-z) = 2\Phi(z) - 1

です。P(sN=0)→0\mathbb{P}(s_N = 0) \to 0 なので、区間の被覆確率も同じ極限をもちます。

2 が Monte Carlo 法の基本の式です。誤差 σ/N\sigma/\sqrt N に次元 dd は現れません(σ\sigma は ff と分布で決まり、次元とともに増えることも減ることもあります)。4 は、未知の σ\sigma を標本から推定した sNs_N で置き換えても、区間 I^N±z sN/N\hat I_N \pm z\,s_N/\sqrt N の被覆確率が漸近的に正しいことを保証します。z=1z = 1 で約 68%68\%、z=1.96z = 1.96 で 95%95\%、z=3z = 3 で約 99.7%99.7\% です。この区間を、信頼係数 2Φ(z)−12\Phi(z) - 1 の漸近信頼区間といいます(信頼集合の定義は 定義 6.1[検定と区間推定]。「漸近」は、被覆確率が極限でだけ保証されることを指します)。この章と以降の章のコードでは、推定値に必ず sN/Ns_N/\sqrt N を添え、理論値との差を標準誤差の倍数で示します。

仮定 σ2<∞\sigma^2 < \infty は本質的です。f(X)f(X) が可積分でも分散が無限大なら、I^N\hat I_N は収束しますが sN2s_N^2 は発散し、区間は意味をもちません。重点サンプリングで提案分布の裾が軽いときに実際に起きます(§6)。

有限の NN で何が言えるかも確かめておきます。

命題 2.3(有限標本での評価)✓

定義 2.1 の設定で 0<σ2<∞0 < \sigma^2 < \infty とする。

  1. すべての N≥1N \ge 1 と k>0k > 0 について P(∣I^N−I∣≥kσ/N)≤1/k2\mathbb{P}\bigl(|\hat I_N - I| \ge k\sigma/\sqrt N\bigr) \le 1/k^2。
  2. ρ3=E[∣f(X)−I∣3]<∞\rho_3 = \mathbb{E}[|f(X) - I|^3] < \infty ならば、絶対定数 CC があって、すべての N≥1N \ge 1 と z>0z > 0 について ∣P(∣I^N−I∣≤zσN)−(2Φ(z)−1)∣≤2Cρ3σ3N.\Bigl|\mathbb{P}\Bigl(|\hat I_N - I| \le \frac{z\sigma}{\sqrt N}\Bigr) - \bigl(2\Phi(z) - 1\bigr)\Bigr| \le \frac{2C\rho_3}{\sigma^3\sqrt N}.
証明(命題 2.3)

1. 定理 2.2 の 1・2 から I^N\hat I_N の平均は II、分散は σ2/N\sigma^2/N です。Chebyshev の不等式(系 6.2[確率変数と期待値])を a=kσ/Na = k\sigma/\sqrt N で使うと、確率は (σ2/N)/a2=1/k2(\sigma^2/N)/a^2 = 1/k^2 以下です。

2. ZN=N(I^N−I)/σZ_N = \sqrt N(\hat I_N - I)/\sigma の分布関数を FNF_N とし、δ=Cρ3/(σ3N)\delta = C\rho_3/(\sigma^3\sqrt N) と置きます。Berry–Esseen の定理(定理 5.9[大数の法則と中心極限定理])から、すべての xx で ∣FN(x)−Φ(x)∣≤δ|F_N(x) - \Phi(x)| \le \delta です。P(∣ZN∣≤z)=FN(z)−P(ZN<−z)\mathbb{P}(|Z_N| \le z) = F_N(z) - \mathbb{P}(Z_N < -z) で、P(ZN<−z)=lim⁡x↑−zFN(x)\mathbb{P}(Z_N < -z) = \lim_{x \uparrow -z}F_N(x) です。各 xx で ∣FN(x)−Φ(x)∣≤δ|F_N(x) - \Phi(x)| \le \delta なので、x↑−zx \uparrow -z の極限を取ると、Φ\Phi の連続性から ∣P(ZN<−z)−Φ(−z)∣≤δ|\mathbb{P}(Z_N < -z) - \Phi(-z)| \le \delta です。三角不等式から

∣P(∣ZN∣≤z)−(Φ(z)−Φ(−z))∣≤2δ\bigl|\mathbb{P}(|Z_N| \le z) - (\Phi(z) - \Phi(-z))\bigr| \le 2\delta

です。

1 は分布の形によらない保証で、95%95\% の区間には k=20≈4.47k = \sqrt{20} \approx 4.47 が要ります。正規近似の 1.961.96 の 2.3 倍の幅です。2 は、正規近似による被覆確率の誤差が N−1/2N^{-1/2} の速さで消えること、ただしその定数が歪み ρ3/σ3\rho_3/\sigma^3 に比例することを示します。稀な事象の指示関数(P(f=1)=p\mathbb{P}(f = 1) = p が小さい)では ρ3/σ3≈1/p\rho_3/\sigma^3 \approx 1/\sqrt p なので、NpNp が大きくなるまで正規近似は信用できません。

定義 2.4(計算量あたりの効率)↗

1 標本あたりの分散が σ2\sigma^2、計算時間が tt の推定量で、全体の計算時間 TT を使うと、標本数は N=T/tN = T/t、分散は σ2t/T\sigma^2t/T である。1/(σ2t)1/(\sigma^2t) をこの推定量の効率という。2 つの推定量の比較は、分散ではなく σ2t\sigma^2t で行う。

分散を半分にする工夫でも、1 標本の計算時間が 3 倍になるなら損です。以下の定理は分散だけを述べますが、実際の選択ではこの積を見ます。

Monte Carlo 法が有利になるのはどこからかを、定理で確かめます。求積則とは、積分を「関数の値の重みつき和」で近似する公式のことです(台形則や Simpson 則が代表例です)。1 次元の公式を各軸に使って dd 次元に広げたものが積型求積則で、その誤差を見積もるのが次の定理の目的です。証明は、変数を 1 つずつ「積分」から「求積則」に置き換えていき、1 回の置き換えの誤差を 1 次元の誤差評価で抑える、という方針です。[0,1][0,1] 上の求積則 Qg=∑jwjg(xj)Q g = \sum_{j} w_jg(x_j) から、[0,1]d[0,1]^d 上の積型求積則

Q⊗df=∑j1,…,jdwj1⋯wjd f(xj1,…,xjd)Q^{\otimes d}f = \sum_{j_1, \ldots, j_d} w_{j_1}\cdots w_{j_d}\,f(x_{j_1}, \ldots, x_{j_d})

を作ります。節点が JJ 個なら、評価回数は N=JdN = J^d です。

定理 3.1(積型求積則の誤差)✓

r≥1r \ge 1、n≥1n \ge 1 とする。[0,1][0,1] 上の求積則 QnQ_n が、重み wj≥0w_j \ge 0、∑jwj=1\sum_jw_j = 1 をもち、ある定数 KK について、すべての g∈Cr[0,1]g \in C^r[0,1] で

∣∫01g(x) dx−Qng∣≤K n−rmax⁡[0,1]∣g(r)∣\Bigl|\int_0^1 g(x)\,dx - Q_ng\Bigr| \le K\,n^{-r}\max_{[0,1]}|g^{(r)}|

を満たすとする。

  1. f:[0,1]d→Rf : [0,1]^d \to \mathbb{R} が連続で、各 kk について ∂rf/∂xkr\partial^rf/\partial x_k^r が存在して連続ならば ∣∫[0,1]df(x) dx−Qn⊗df∣≤K n−r∑k=1dmax⁡[0,1]d∣∂rf∂xkr∣.\Bigl|\int_{[0,1]^d} f(x)\,dx - Q_n^{\otimes d}f\Bigr| \le K\,n^{-r}\sum_{k=1}^d\max_{[0,1]^d}\Bigl|\frac{\partial^rf}{\partial x_k^r}\Bigr|.
  2. 複合台形則(nn 個の小区間、r=2r = 2、K=112K = \frac1{12})と複合 Simpson 則(nn は偶数、r=4r = 4、K=1180K = \frac1{180})はこの仮定を満たし、評価回数 N=(n+1)dN = (n+1)^d について誤差は 2rKN−r/d∑kmax⁡∣∂krf∣2^rK N^{-r/d}\sum_k\max|\partial_k^rf| 以下である。
  3. 複合台形則の積型則を f(x)=x12f(x) = x_1^2 に使ったときの誤差は、ちょうど 16n2\frac{1}{6n^2} で、16N−2/d\frac16N^{-2/d} より大きい。
証明(定理 3.1)

1. k=0,1,…,dk = 0, 1, \ldots, d について、「最初の kk 個の変数には QnQ_n を、残りの d−kd - k 個の変数には積分を」使った量

Ak=∑j1,…,jkwj1⋯wjk∫[0,1]d−kf(xj1,…,xjk,tk+1,…,td) dtk+1⋯dtdA_k = \sum_{j_1, \ldots, j_k} w_{j_1}\cdots w_{j_k}\int_{[0,1]^{d-k}} f(x_{j_1}, \ldots, x_{j_k}, t_{k+1}, \ldots, t_d)\,dt_{k+1}\cdots dt_d

を考えます。A0=∫fA_0 = \int f、Ad=Qn⊗dfA_d = Q_n^{\otimes d}f なので、∫f−Qn⊗df=∑k=1d(Ak−1−Ak)\int f - Q_n^{\otimes d}f = \sum_{k=1}^d(A_{k-1} - A_k) です。ff は連続なので、Fubini の定理(定理 3.4[直積測度と Fubini–Tonelli の定理])から Ak−1A_{k-1} の中の積分を「tkt_k について先に積分する」形に書けて、

Ak−1−Ak=∑j1,…,jk−1wj1⋯wjk−1∫[0,1]d−k(∫01g(tk) dtk−Qng)dtk+1⋯dtdA_{k-1} - A_k = \sum_{j_1, \ldots, j_{k-1}} w_{j_1}\cdots w_{j_{k-1}}\int_{[0,1]^{d-k}}\Bigl(\int_0^1 g(t_k)\,dt_k - Q_ng\Bigr)dt_{k+1}\cdots dt_d

です。ここで g(t)=f(xj1,…,xjk−1,t,tk+1,…,td)g(t) = f(x_{j_1}, \ldots, x_{j_{k-1}}, t, t_{k+1}, \ldots, t_d) は、他の変数を固定した tt の 1 変数関数です。g∈Cr[0,1]g \in C^r[0,1] で ∣g(r)∣≤max⁡∣∂krf∣|g^{(r)}| \le \max|\partial_k^rf| なので、仮定から括弧の中の絶対値は Kn−rmax⁡∣∂krf∣Kn^{-r}\max|\partial_k^rf| 以下です。重みは非負で和が 11、積分領域の体積は 11 なので、∣Ak−1−Ak∣≤Kn−rmax⁡∣∂krf∣|A_{k-1} - A_k| \le Kn^{-r}\max|\partial_k^rf| です。kk について足して結論を得ます。

2. 複合則の誤差(系 4.3[数値積分 I])で [a,b]=[0,1][a,b] = [0,1]、h=1/nh = 1/n とすると、台形則の誤差の絶対値は h212∣g′′(ξ)∣≤112n−2max⁡∣g′′∣\frac{h^2}{12}|g''(\xi)| \le \frac1{12}n^{-2}\max|g''|、Simpson 則は h4180∣g(4)(ξ′′)∣≤1180n−4max⁡∣g(4)∣\frac{h^4}{180}|g^{(4)}(\xi'')| \le \frac1{180}n^{-4}\max|g^{(4)}| です。重みは、台形則が h2,h,…,h,h2\frac h2, h, \ldots, h, \frac h2、Simpson 則が h3,4h3,2h3,…,4h3,h3\frac h3, \frac{4h}3, \frac{2h}3, \ldots, \frac{4h}3, \frac h3 で、どちらも非負で和が 11 です(定数関数 11 を正確に積分するからです)。節点は n+1n + 1 個なので N=(n+1)d≤(2n)dN = (n+1)^d \le (2n)^d、すなわち n≥12N1/dn \ge \frac12N^{1/d} で、n−r≤2rN−r/dn^{-r} \le 2^rN^{-r/d} です。

3. ff は x1x_1 だけの関数で、他の変数についての和は重みの和 11 を掛けるだけなので、Qn⊗dfQ_n^{\otimes d}f は 1 次元の複合台形則 ThT_h を g(x)=x2g(x) = x^2 に使った値です。系 4.3[数値積分 I] の 1 で g′′=2g'' = 2 が定数なので、∫01g−Th(g)=−h212⋅2=−16n2\int_0^1g - T_h(g) = -\frac{h^2}{12}\cdot2 = -\frac{1}{6n^2} です。N=(n+1)d>ndN = (n+1)^d > n^d から n−2>N−2/dn^{-2} > N^{-2/d} です。

1 と 2 は、rr 階の滑らかさを使う積型則の誤差が N−r/dN^{-r/d} の程度以下であること、3 は台形則でこの次数が実際に達成されてしまうことを示します。Monte Carlo 法の σN−1/2\sigma N^{-1/2} と指数を比べると、

rd<12  ⟺  d>2r\frac rd < \frac12 \iff d > 2r

のとき Monte Carlo 法の収束が速くなります。台形則(r=2r = 2)なら 5 次元以上、Simpson 則(r=4r = 4)なら 9 次元以上です。逆に低次元の滑らかな積分では、求積則が圧倒的に有利です。

注意 3.2(次元の呪いは積型則に限らない)

定理 3.1 の 3 は積型の台形則についての下界です。より一般に、rr 階の導関数が有界な関数の全体に対しては、NN 個の点を使うどんな決定的な求積則でも、最悪の誤差は N−r/dN^{-r/d} の定数倍より小さくできないことが知られています(Bakhvalov)。証明は、NN 個の点をすべて避ける小さなこぶ状の関数を作る議論で、Novak の本にあります。関数の族を狭める(混合導関数が有界、など)と事情が変わり、それが準 Monte Carlo 法の主題です。

次のコードは、被積分関数 f(x)=∏k=1dπ2sin⁡(πxk)f(x) = \prod_{k=1}^d\frac\pi2\sin(\pi x_k)(積分の値は 11)について、積型 Simpson 則と Monte Carlo 法を同じ評価回数で比べます。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
f1 = lambda x: 0.5 * np.pi * np.sin(np.pi * x) # 1 次元の因子。積分は 1
def simpson_1d(n): # n 個の小区間(n は偶数)の複合 Simpson 則
x = np.linspace(0, 1, n + 1)
w = np.ones(n + 1); w[1:-1:2] = 4; w[2:-1:2] = 2
return (w * f1(x)).sum() / (3 * n)
rng = np.random.default_rng(20261008)
print(" d n N=(n+1)^d 積型 Simpson の誤差 Monte Carlo の誤差 (標準誤差)")
for d, n in ((2, 30), (6, 4), (10, 2)):
N = (n + 1) ** d
q = simpson_1d(n) ** d # 被積分関数が積なので、積型則は 1 次元の値の d 乗
y = np.prod(f1(rng.random((N, d))), axis=1)
est, se = y.mean(), y.std(ddof=1) / np.sqrt(N)
print(f"{d:2d} {n:2d} {N:10d} {abs(q - 1):.3e} {abs(est - 1):.3e} ({se:.3e})")
d n N=(n+1)^d 積型 Simpson の誤差 Monte Carlo の誤差 (標準誤差)
2 30 961 1.338e-06 6.344e-03 (2.308e-02)
6 4 15625 1.376e-02 8.516e-03 (1.260e-02)
10 2 59049 5.859e-01 1.618e-02 (1.124e-02)

2 次元では Simpson 則が 4 桁よく、6 次元でほぼ並び、10 次元では Simpson 則の誤差が 59%59\% に達するのに対して Monte Carlo 法は約 1.6%1.6\% です。Monte Carlo 法の実際の誤差は、3 つの場合とも標準誤差の 1.5 倍以内にあります。定理が予言するとおり、交代は d=2r=8d = 2r = 8 の前後で起きています。

ここからは、同じ II を、より分散の小さい確率変数の期待値として書き直す方法を扱います。

U∼U(0,1)U \sim \mathrm{U}(0,1) なら 1−U∼U(0,1)1 - U \sim \mathrm{U}(0,1) です。f(U)f(U) と f(1−U)f(1 - U) は同じ分布に従い、UU が大きいとき 1−U1 - U は小さいので、ff が単調なら 2 つの値は逆向きに動きます。その平均を取ると揺らぎが打ち消し合います。

定義 4.1(対称変量)↗

U1,…,UN/2U_1, \ldots, U_{N/2}(NN は偶数)を [0,1]d[0,1]^d 上の一様分布に従う独立な確率変数とする。1=(1,…,1)\boldsymbol{1} = (1, \ldots, 1) として

I^Nanti=1N∑i=1N/2(f(Ui)+f(1−Ui))\hat I_N^{\mathrm{anti}} = \frac1N\sum_{i=1}^{N/2}\bigl(f(U_i) + f(\boldsymbol{1} - U_i)\bigr)

を対称変量(antithetic variates)による推定量という。関数の評価回数は NN である。

効果の根拠は、単調な関数どうしの共分散の符号です。次の補題は、同じ向きに増える 2 つの量は一緒に動く(共分散が非負)という当たり前の感覚を、多次元でも確かめるものです。証明は、1 次元で示したあと、変数を 1 つずつ積分して次元を下げる帰納法で進みます。

補題 4.2(単調な 2 関数の共分散)✓

g,h:[0,1]d→Rg, h : [0,1]^d \to \mathbb{R} をボレル可測で、各変数について単調非減少(他の変数を固定したとき、その変数の関数として非減少)とし、UU を [0,1]d[0,1]^d 上の一様分布に従う確率変数、g(U),h(U)∈L2g(U), h(U) \in L^2 とする。このとき

Cov(g(U),h(U))≥0.\mathrm{Cov}\bigl(g(U), h(U)\bigr) \ge 0.
証明(補題 4.2)

dd についての帰納法で示します。

d=1d = 1。 U′U' を UU と独立で同じ分布に従う確率変数とします。g,hg, h が非減少なので、g(U)−g(U′)g(U) - g(U') と h(U)−h(U′)h(U) - h(U') は(U≥U′U \ge U' ならともに非負、U≤U′U \le U' ならともに非正で)積が常に非負です。期待値を取って展開すると、独立性(命題 7.5[確率変数と期待値])と同分布性から

0≤E[(g(U)−g(U′))(h(U)−h(U′))]=2 E[g(U)h(U)]−2 E[g(U)] E[h(U)]=2 Cov(g(U),h(U))0 \le \mathbb{E}\bigl[(g(U) - g(U'))(h(U) - h(U'))\bigr] = 2\,\mathbb{E}[g(U)h(U)] - 2\,\mathbb{E}[g(U)]\,\mathbb{E}[h(U)] = 2\,\mathrm{Cov}(g(U), h(U))

です。

d≥2d \ge 2。 u=(u′,t)u = (u', t)(u′∈[0,1]d−1u' \in [0,1]^{d-1}、t∈[0,1]t \in [0,1])と書きます。Fubini の定理(定理 3.4[直積測度と Fubini–Tonelli の定理])を g2,h2g^2, h^2 に使うと、ほとんどすべての tt について g(⋅,t),h(⋅,t)∈L2([0,1]d−1)g(\cdot, t), h(\cdot, t) \in L^2([0,1]^{d-1}) です。そのような tt について

G(t)=∫g(u′,t) du′,H(t)=∫h(u′,t) du′G(t) = \int g(u', t)\,du', \qquad H(t) = \int h(u', t)\,du'

と置きます。g(⋅,t)g(\cdot, t)、h(⋅,t)h(\cdot, t) は d−1d - 1 変数の各変数について非減少なので、帰納法の仮定から

∫g(u′,t)h(u′,t) du′≥G(t)H(t)\int g(u', t)h(u', t)\,du' \ge G(t)H(t)

です。G,HG, H は tt について非減少で(g,hg, h が tt について非減少だからです)、G(t)2≤∫g(u′,t)2du′G(t)^2 \le \int g(u', t)^2du' から L2(0,1)L^2(0,1) に属します。d=1d = 1 の場合を G,HG, H に使うと ∫01G(t)H(t) dt≥∫01G ∫01H\int_0^1G(t)H(t)\,dt \ge \int_0^1G\,\int_0^1H です。Fubini の定理でつなぐと

E[g(U)h(U)]=∫01(∫g(u′,t)h(u′,t) du′)dt≥∫01G(t)H(t) dt≥∫01G ∫01H=E[g(U)] E[h(U)]\mathbb{E}[g(U)h(U)] = \int_0^1\Bigl(\int g(u',t)h(u',t)\,du'\Bigr)dt \ge \int_0^1G(t)H(t)\,dt \ge \int_0^1G\,\int_0^1H = \mathbb{E}[g(U)]\,\mathbb{E}[h(U)]

です。

この補題は、有限和についての Chebyshev の和の不等式(同じ向きに並んだ 2 つの数列の積の平均は、平均の積以上)の積分版です。

定理 4.3(対称変量の分散)✓

f:[0,1]d→Rf : [0,1]^d \to \mathbb{R} をボレル可測で、各変数について単調(変数ごとに、非減少か非増加かのどちらかに決まっている)とし、UU を [0,1]d[0,1]^d 上の一様分布に従う確率変数、f(U)∈L2f(U) \in L^2、σ2=Var(f(U))\sigma^2 = \mathrm{Var}(f(U)) とする。

  1. Cov(f(U),f(1−U))≤0\mathrm{Cov}\bigl(f(U), f(\boldsymbol{1} - U)\bigr) \le 0。
  2. I^Nanti\hat I_N^{\mathrm{anti}} は不偏で、 Var(I^Nanti)=σ2+Cov(f(U),f(1−U))N≤σ2N\mathrm{Var}\bigl(\hat I_N^{\mathrm{anti}}\bigr) = \frac{\sigma^2 + \mathrm{Cov}(f(U), f(\boldsymbol{1} - U))}{N} \le \frac{\sigma^2}{N} である。すなわち、同じ評価回数 NN の単純な推定量 I^N\hat I_N の分散以下である。
証明(定理 4.3)

1. まず ff がすべての変数について非減少の場合を考えます。g(u)=f(u)g(u) = f(u)、h(u)=−f(1−u)h(u) = -f(\boldsymbol{1} - u) と置くと、どちらも各変数について非減少です(uku_k が増えると 1−uk1 - u_k が減り、ff が減るので −f-f が増えます)。1−U\boldsymbol{1} - U は UU と同じ分布に従うので h(U)∈L2h(U) \in L^2 です。補題 4.2 から Cov(f(U),−f(1−U))≥0\mathrm{Cov}(f(U), -f(\boldsymbol{1} - U)) \ge 0、すなわち主張が従います。

一般の場合は、ff が非増加である変数の番号の集合を DD とし、写像 τ:[0,1]d→[0,1]d\tau : [0,1]^d \to [0,1]^d を「k∈Dk \in D の成分を 1−uk1 - u_k に替え、他はそのまま」と定めます。f~=f∘τ\tilde f = f \circ \tau はすべての変数について非減少です。V=τ(U)V = \tau(U) は [0,1]d[0,1]^d 上の一様分布に従い、τ∘τ\tau \circ \tau は恒等写像で、τ(1−u)=1−τ(u)\tau(\boldsymbol{1} - u) = \boldsymbol{1} - \tau(u) なので、

f(U)=f~(V),f(1−U)=f~(τ(1−U))=f~(1−V)f(U) = \tilde f(V), \qquad f(\boldsymbol{1} - U) = \tilde f\bigl(\tau(\boldsymbol{1} - U)\bigr) = \tilde f(\boldsymbol{1} - V)

です。前半を f~\tilde f と VV に使えば Cov(f(U),f(1−U))=Cov(f~(V),f~(1−V))≤0\mathrm{Cov}(f(U), f(\boldsymbol{1} - U)) = \mathrm{Cov}(\tilde f(V), \tilde f(\boldsymbol{1} - V)) \le 0 です。

2. Wi=12(f(Ui)+f(1−Ui))W_i = \frac12(f(U_i) + f(\boldsymbol{1} - U_i)) と置くと、I^Nanti=1N/2∑i=1N/2Wi\hat I_N^{\mathrm{anti}} = \frac{1}{N/2}\sum_{i=1}^{N/2}W_i で、WiW_i は独立同分布です。E[Wi]=12(I+I)=I\mathbb{E}[W_i] = \frac12(I + I) = I なので不偏です。Var(f(1−U))=σ2\mathrm{Var}(f(\boldsymbol{1} - U)) = \sigma^2 なので、分散の和の公式(命題 5.3[確率変数と期待値] の 2 と 4)から

Var(Wi)=14(σ2+σ2+2 Cov(f(U),f(1−U)))=σ2+Cov(f(U),f(1−U))2\mathrm{Var}(W_i) = \frac14\bigl(\sigma^2 + \sigma^2 + 2\,\mathrm{Cov}(f(U), f(\boldsymbol{1} - U))\bigr) = \frac{\sigma^2 + \mathrm{Cov}(f(U), f(\boldsymbol{1} - U))}{2}

です。定理 2.2 の 2 を WiW_i の N/2N/2 個の平均に使うと Var(I^Nanti)=Var(W1)/(N/2)\mathrm{Var}(\hat I_N^{\mathrm{anti}}) = \mathrm{Var}(W_1)/(N/2) で、主張の式になります。不等号は 1 です。

単調性の仮定を外すと、対称変量は逆効果になりえます。f(u)=(u−12)2f(u) = (u - \frac12)^2 では f(1−u)=f(u)f(1 - u) = f(u) なので共分散は σ2\sigma^2 で、分散は 2σ2/N2\sigma^2/N と 2 倍になります(同じ点を 2 回評価しているのと同じです)。逆関数法で作った乱数(X=F−(U)X = F^{-}(U) は UU について非減少)を単調な関数に入れる計算では、仮定が自然に満たされます。標準誤差は WiW_i の標本分散から推定します。f(Ui)f(U_i) と f(1−Ui)f(\boldsymbol{1} - U_i) を独立な NN 個の標本として扱ってはいけません。

定義 4.4(制御変量)↗

Y=f(X)Y = f(X) と同じ標本から計算でき、期待値 ν=E[C]\nu = \mathbb{E}[C] が既知の確率変数 C=c(X)C = c(X) を制御変量という。係数 β∈R\beta \in \mathbb{R} に対して

I^Ncv(β)=1N∑i=1N(Yi−β(Ci−ν))\hat I_N^{\mathrm{cv}}(\beta) = \frac1N\sum_{i=1}^N\bigl(Y_i - \beta(C_i - \nu)\bigr)

を制御変量による推定量という。

定理 4.5(制御変量の最適な係数)✓

Y,C∈L2Y, C \in L^2、σ2=Var(Y)\sigma^2 = \mathrm{Var}(Y)、σC2=Var(C)>0\sigma_C^2 = \mathrm{Var}(C) > 0、ρ=Cov(Y,C)/(σσC)\rho = \mathrm{Cov}(Y, C)/(\sigma\sigma_C)(σ=0\sigma = 0 のときは ρ=0\rho = 0)とする。

  1. 任意の定数 β\beta について I^Ncv(β)\hat I_N^{\mathrm{cv}}(\beta) は不偏で、Var(I^Ncv(β))=1N(σ2−2β Cov(Y,C)+β2σC2)\mathrm{Var}\bigl(\hat I_N^{\mathrm{cv}}(\beta)\bigr) = \frac1N\bigl(\sigma^2 - 2\beta\,\mathrm{Cov}(Y, C) + \beta^2\sigma_C^2\bigr)。
  2. この分散は β∗=Cov(Y,C)/σC2\beta^* = \mathrm{Cov}(Y, C)/\sigma_C^2 で最小になり、最小値は (1−ρ2)σ2/N(1 - \rho^2)\sigma^2/N である。
  3. β\beta を標本から決めた確率変数 β^∈L2\hat\beta \in L^2 で置き換えると、偏りは E[I^Ncv(β^)]−I=−Cov(β^,CˉN)\mathbb{E}[\hat I_N^{\mathrm{cv}}(\hat\beta)] - I = -\mathrm{Cov}(\hat\beta, \bar C_N)(CˉN=1N∑Ci\bar C_N = \frac1N\sum C_i)で、 ∣E[I^Ncv(β^)]−I∣≤σCNVar(β^)\bigl|\mathbb{E}[\hat I_N^{\mathrm{cv}}(\hat\beta)] - I\bigr| \le \frac{\sigma_C}{\sqrt N}\sqrt{\mathrm{Var}(\hat\beta)} を満たす。β^\hat\beta が (C1,…,CN)(C_1, \ldots, C_N) と独立(別の標本から推定した場合)なら、偏りは 00 である。
証明(定理 4.5)

1. Wi=Yi−β(Ci−ν)W_i = Y_i - \beta(C_i - \nu) は独立同分布で、E[Wi]=I−β(ν−ν)=I\mathbb{E}[W_i] = I - \beta(\nu - \nu) = I です。Var(Wi)=Var(Y−βC)=σ2−2β Cov(Y,C)+β2σC2\mathrm{Var}(W_i) = \mathrm{Var}(Y - \beta C) = \sigma^2 - 2\beta\,\mathrm{Cov}(Y, C) + \beta^2\sigma_C^2(命題 5.3[確率変数と期待値] の 2〜4)で、定理 2.2 の 2 から NN で割ったものが推定量の分散です。

2. β\beta の 2 次式を平方完成すると

σ2−2β Cov(Y,C)+β2σC2=σC2(β−Cov(Y,C)σC2)2+σ2−Cov(Y,C)2σC2\sigma^2 - 2\beta\,\mathrm{Cov}(Y, C) + \beta^2\sigma_C^2 = \sigma_C^2\Bigl(\beta - \frac{\mathrm{Cov}(Y, C)}{\sigma_C^2}\Bigr)^2 + \sigma^2 - \frac{\mathrm{Cov}(Y, C)^2}{\sigma_C^2}

なので、β=β∗\beta = \beta^* で最小値 σ2−Cov(Y,C)2/σC2=(1−ρ2)σ2\sigma^2 - \mathrm{Cov}(Y,C)^2/\sigma_C^2 = (1 - \rho^2)\sigma^2 を取ります。Cauchy–Schwarz の不等式(定理 5.6[確率変数と期待値])から ρ2≤1\rho^2 \le 1 で、これは非負です。

3. I^Ncv(β^)=YˉN−β^(CˉN−ν)\hat I_N^{\mathrm{cv}}(\hat\beta) = \bar Y_N - \hat\beta(\bar C_N - \nu) で、E[YˉN]=I\mathbb{E}[\bar Y_N] = I、E[CˉN]=ν\mathbb{E}[\bar C_N] = \nu なので、偏りは −E[β^(CˉN−ν)]=−Cov(β^,CˉN)-\mathbb{E}[\hat\beta(\bar C_N - \nu)] = -\mathrm{Cov}(\hat\beta, \bar C_N) です。Cauchy–Schwarz の不等式と Var(CˉN)=σC2/N\mathrm{Var}(\bar C_N) = \sigma_C^2/N から評価が従います。β^\hat\beta が CˉN\bar C_N と独立なら共分散は 00 です(命題 7.5[確率変数と期待値])。

ρ=±0.9\rho = \pm0.9 で分散は 0.190.19 倍、ρ=±0.99\rho = \pm0.99 で約 0.020.02 倍です。制御変量は、被積分関数の「解析的に積分できる近似」を引いて、残りだけを Monte Carlo 法で積分する方法と読めます。実際には Cov(Y,C)\mathrm{Cov}(Y, C) は未知なので、β∗\beta^* を標本共分散と標本分散の比 β^\hat\beta で推定します。3 から、β^\hat\beta の標準偏差が O(N−1/2)O(N^{-1/2}) であれば(4 次モーメントが有限な通常の状況です)偏りは O(1/N)O(1/N) で、標準誤差 O(N−1/2)O(N^{-1/2}) に比べて無視できます。偏りを完全に避けたいときは、小さな予備の標本で β^\hat\beta を決め、本番の標本ではそれを定数として使います。

例 4.6(∫₀¹ eˣ dx の分散の閉じた形)

I=∫01ex dx=e−1I = \int_0^1e^x\,dx = e - 1 を Y=eUY = e^U(U∼U(0,1)U \sim \mathrm{U}(0,1))の期待値として推定します。必要な量はすべて閉じた形で求まります。

  • 単純な推定量。 σ2=E[e2U]−I2=e2−12−(e−1)2≈0.24204\sigma^2 = \mathbb{E}[e^{2U}] - I^2 = \frac{e^2 - 1}{2} - (e - 1)^2 \approx 0.24204。
  • 対称変量。 E[eUe1−U]=e\mathbb{E}[e^Ue^{1-U}] = e なので Cov(eU,e1−U)=e−(e−1)2≈−0.23421\mathrm{Cov}(e^U, e^{1-U}) = e - (e-1)^2 \approx -0.23421。定理 4.3 から分散は (σ2−0.23421)/N≈0.00782/N(\sigma^2 - 0.23421)/N \approx 0.00782/N で、単純な推定量の 0.03230.0323 倍(約 1/311/31)。
  • 制御変量 C=UC = U。 ν=12\nu = \frac12、σC2=112\sigma_C^2 = \frac1{12}、E[UeU]=∫01xex dx=1\mathbb{E}[Ue^U] = \int_0^1xe^x\,dx = 1 から Cov(eU,U)=1−e−12≈0.14086\mathrm{Cov}(e^U, U) = 1 - \frac{e-1}{2} \approx 0.14086。β∗=12×0.14086≈1.6903\beta^* = 12 \times 0.14086 \approx 1.6903、ρ2=0.140862/(0.24204/12)≈0.98372\rho^2 = 0.14086^2/(0.24204/12) \approx 0.98372。定理 4.5 から分散は 0.01630.0163 倍(約 1/611/61)。
  • 層別(10 層、比例配分)。 §5 の 定理 5.4 と 例 5.5 から 0.01100.0110 倍(約 1/911/91)。

どの方法も、関数の評価回数は同じ NN です。

例 4.7(π/4 の推定で分散は何分の 1 になるか)

例 6.4[大数の法則と中心極限定理] の「当たり外れ」の推定量 1{U12+U22≤1}\mathbf{1}\{U_1^2 + U_2^2 \le 1\} の分散は π4(1−π4)≈0.1685\frac\pi4(1 - \frac\pi4) \approx 0.1685 でした。U2U_2 について先に積分すると P(U2≤1−U12∣U1)=1−U12\mathbb{P}(U_2 \le \sqrt{1 - U_1^2} \mid U_1) = \sqrt{1 - U_1^2} なので、Y=1−U2Y = \sqrt{1 - U^2} も期待値 π/4\pi/4 をもちます。その分散は E[1−U2]−π216=23−π216≈0.0498\mathbb{E}[1 - U^2] - \frac{\pi^2}{16} = \frac23 - \frac{\pi^2}{16} \approx 0.0498 で、0.2960.296 倍です(§5 の 命題 5.2 の例になっています)。

この YY にさらに制御変量 C=U2C = U^2 を使います。ν=13\nu = \frac13、σC2=15−19=445\sigma_C^2 = \frac15 - \frac19 = \frac4{45}、E[U21−U2]=∫0π/2sin⁡2θcos⁡2θ dθ=π16\mathbb{E}[U^2\sqrt{1 - U^2}] = \int_0^{\pi/2}\sin^2\theta\cos^2\theta\,d\theta = \frac\pi{16} から

Cov(Y,C)=π16−π4⋅13=−π48,ρ2=(π/48)2445(23−π216)≈0.9674\mathrm{Cov}(Y, C) = \frac\pi{16} - \frac\pi4\cdot\frac13 = -\frac{\pi}{48}, \qquad \rho^2 = \frac{(\pi/48)^2}{\frac4{45}\bigl(\frac23 - \frac{\pi^2}{16}\bigr)} \approx 0.9674

です。分散はさらに 1−ρ2≈0.03261 - \rho^2 \approx 0.0326 倍になり、最初の推定量と比べると 0.296×0.0326≈0.00960.296 \times 0.0326 \approx 0.0096 倍、約 1/1041/104 です。YY は UU について単調減少なので対称変量も使えて、その場合の分散の比は数値積分で 0.2750.275 倍です(Cov(Y(U),Y(1−U))≈−0.0361\mathrm{Cov}(Y(U), Y(1-U)) \approx -0.0361)。この例では、被積分関数の形(1−u2/21 - u^2/2 に近い)に合った制御変量のほうがはるかに効きます。

5.1. 条件付き期待値による置き換え

Section titled “5.1. 条件付き期待値による置き換え”

以下の G\mathcal{G} は、「すでに値が分かっているものとする情報」を表します。たとえば G\mathcal{G} が U1U_1 の値の情報なら、U1U_1 は固定して残りの乱数だけを平均する、ということです。具体例は 例 4.7 で見られます。

補題 5.1(全分散の分解)✓

Y∈L2Y \in L^2、G\mathcal{G} を部分 σ\sigma-加法族とすると、

Var(Y)=E[Var(Y∣G)]+Var(E[Y∣G]).\mathrm{Var}(Y) = \mathbb{E}\bigl[\mathrm{Var}(Y \mid \mathcal{G})\bigr] + \mathrm{Var}\bigl(\mathbb{E}[Y \mid \mathcal{G}]\bigr).
証明(補題 5.1)

Y^=E[Y∣G]\hat Y = \mathbb{E}[Y \mid \mathcal{G}] と置きます(条件付き期待値の定義は 定義 3.1[条件付き期待値])。Y^∈L2\hat Y \in L^2 です(定理 5.1[条件付き期待値] の 1)。条件付き分散の定義(定義 5.3[条件付き期待値])とタワー・プロパティ(定理 4.2[条件付き期待値])から

E[Var(Y∣G)]=E[E[Y2∣G]]−E[Y^2]=E[Y2]−E[Y^2]\mathbb{E}\bigl[\mathrm{Var}(Y \mid \mathcal{G})\bigr] = \mathbb{E}\bigl[\mathbb{E}[Y^2 \mid \mathcal{G}]\bigr] - \mathbb{E}[\hat Y^2] = \mathbb{E}[Y^2] - \mathbb{E}[\hat Y^2]

です。また E[Y^]=E[Y]\mathbb{E}[\hat Y] = \mathbb{E}[Y] から Var(Y^)=E[Y^2]−(E[Y])2\mathrm{Var}(\hat Y) = \mathbb{E}[\hat Y^2] - (\mathbb{E}[Y])^2 です。2 つを足すと E[Y2]−(E[Y])2=Var(Y)\mathbb{E}[Y^2] - (\mathbb{E}[Y])^2 = \mathrm{Var}(Y) です。

命題 5.2(条件づけは分散を増やさない)✓

Y∈L2Y \in L^2、I=E[Y]I = \mathbb{E}[Y]、G\mathcal{G} を部分 σ\sigma-加法族とし、Y^=E[Y∣G]\hat Y = \mathbb{E}[Y \mid \mathcal{G}] と置く。このとき E[Y^]=I\mathbb{E}[\hat Y] = I で、

Var(Y^)=Var(Y)−E[Var(Y∣G)]≤Var(Y)\mathrm{Var}(\hat Y) = \mathrm{Var}(Y) - \mathbb{E}\bigl[\mathrm{Var}(Y \mid \mathcal{G})\bigr] \le \mathrm{Var}(Y)

である。したがって、Y^\hat Y の独立な複製の標本平均は II の不偏推定量で、その分散は YY の標本平均の分散以下である。

証明(命題 5.2)

E[Y^]=I\mathbb{E}[\hat Y] = I はタワー・プロパティ(定理 4.2[条件付き期待値])です。分散の式は 補題 5.1 で、条件付き分散はほとんど確実に非負なので(条件付き Jensen の不等式。定理 4.6[条件付き期待値])、その期待値は非負です。標本平均についての主張は 定理 2.2 の 1・2 です。

使い方は、「乱数の一部について解析的に積分できるなら、その分は乱数を使わずに積分してしまう」です。例 4.7 で 1{U12+U22≤1}\mathbf{1}\{U_1^2 + U_2^2 \le 1\} を 1−U12\sqrt{1 - U_1^2} に替えたのは、G=σ(U1)\mathcal{G} = \sigma(U_1) についての条件付き期待値を取ったことにあたります。統計学の Rao–Blackwell の定理と同じ計算なので、この操作を Rao–Blackwell 化とも呼びます。効率の観点では、Y^\hat Y の計算が YY より重くなる分を 定義 2.4 で差し引いて評価します。

層別サンプリングは、値域をいくつかの区画(層)に分け、各層から決まった個数ずつ標本を取る方法です。どの層に何個の標本を割り当てるか(配分)が分散を左右します。

定義 5.3(層別サンプリング)↗

XX の値域を互いに交わらない可測集合 A1,…,AKA_1, \ldots, A_K(層)に分け、pk=P(X∈Ak)>0p_k = \mathbb{P}(X \in A_k) > 0、∑kpk=1\sum_kp_k = 1 とする。層 kk の中での条件付き分布 P(X∈B∣X∈Ak)=P(X∈B∩Ak)/pk\mathbb{P}(X \in B \mid X \in A_k) = \mathbb{P}(X \in B \cap A_k)/p_k に従う確率変数を X(k)X^{(k)} とし、

μk=E[f(X(k))],σk2=Var(f(X(k)))\mu_k = \mathbb{E}[f(X^{(k)})], \qquad \sigma_k^2 = \mathrm{Var}(f(X^{(k)}))

と置く。層 kk から nk≥1n_k \ge 1 個の独立な標本 X1(k),…,Xnk(k)X^{(k)}_1, \ldots, X^{(k)}_{n_k} を取り(異なる層の標本も独立)、

I^str=∑k=1Kpk⋅1nk∑i=1nkf(Xi(k))\hat I^{\mathrm{str}} = \sum_{k=1}^K p_k\cdot\frac{1}{n_k}\sum_{i=1}^{n_k} f(X^{(k)}_i)

を層別推定量という。n1+⋯+nK=Nn_1 + \cdots + n_K = N を満たす (nk)(n_k) を配分といい、nk=Npkn_k = Np_k を比例配分という。

定理 5.4(層別推定量の分散)✓

定義 5.3 の設定で f(X)∈L2f(X) \in L^2、I=E[f(X)]I = \mathbb{E}[f(X)]、σ2=Var(f(X))\sigma^2 = \mathrm{Var}(f(X)) とする。

  1. I=∑kpkμkI = \sum_kp_k\mu_k であり、σ2=∑kpkσk2+∑kpk(μk−I)2\sigma^2 = \sum_kp_k\sigma_k^2 + \sum_kp_k(\mu_k - I)^2(層内分散と層間分散への分解)。
  2. I^str\hat I^{\mathrm{str}} は不偏で、Var(I^str)=∑kpk2σk2/nk\mathrm{Var}(\hat I^{\mathrm{str}}) = \sum_k p_k^2\sigma_k^2/n_k。
  3. 比例配分(NpkNp_k がすべて整数のとき)では Var(I^str)=1N∑kpkσk2=σ2N−1N∑kpk(μk−I)2≤σ2N.\mathrm{Var}(\hat I^{\mathrm{str}}) = \frac1N\sum_kp_k\sigma_k^2 = \frac{\sigma^2}{N} - \frac1N\sum_kp_k(\mu_k - I)^2 \le \frac{\sigma^2}{N}.
  4. 正の実数 n1,…,nKn_1, \ldots, n_K で ∑knk=N\sum_kn_k = N を満たすもの全体の上で、∑kpk2σk2/nk\sum_kp_k^2\sigma_k^2/n_k は 1N(∑kpkσk)2\frac1N\bigl(\sum_kp_k\sigma_k\bigr)^2 以上である。σk\sigma_k がすべて正のとき、等号は nk=Npkσk/∑jpjσjn_k = Np_k\sigma_k/\sum_jp_j\sigma_j(Neyman 配分)で成り立つ。また (∑kpkσk)2≤∑kpkσk2\bigl(\sum_kp_k\sigma_k\bigr)^2 \le \sum_kp_k\sigma_k^2 である。
証明(定理 5.4)

1. 可積分な g(X)g(X) について、条件付き分布の定義から E[g(X)1Ak(X)]=pk E[g(X(k))]\mathbb{E}[g(X)\mathbf{1}_{A_k}(X)] = p_k\,\mathbb{E}[g(X^{(k)})] です(gg が指示関数のときは定義そのもので、一般の gg へは期待値の定義の標準的な手順で延びます。定理 4.5[確率変数と期待値])。層は値域の分割なので ∑k1Ak(X)=1\sum_k\mathbf{1}_{A_k}(X) = 1 で、

E[g(X)]=∑kpk E[g(X(k))]\mathbb{E}[g(X)] = \sum_kp_k\,\mathbb{E}[g(X^{(k)})]

です。g=fg = f として I=∑kpkμkI = \sum_kp_k\mu_k です。g=(f−I)2g = (f - I)^2 とすると、E[(f(X(k))−I)2]=σk2+(μk−I)2\mathbb{E}[(f(X^{(k)}) - I)^2] = \sigma_k^2 + (\mu_k - I)^2(平均 μk\mu_k のまわりの分散と、平均のずれの二乗)から分解の式を得ます。

2. 層 kk の標本平均 Yˉk\bar Y_k は平均 μk\mu_k、分散 σk2/nk\sigma_k^2/n_k をもち(定理 2.2 の 1・2)、異なる層の標本平均は独立です。よって E[I^str]=∑kpkμk=I\mathbb{E}[\hat I^{\mathrm{str}}] = \sum_kp_k\mu_k = I、Var(I^str)=∑kpk2σk2/nk\mathrm{Var}(\hat I^{\mathrm{str}}) = \sum_kp_k^2\sigma_k^2/n_k です(命題 5.3[確率変数と期待値] の 2・4 と 命題 7.5[確率変数と期待値])。

3. 2 に nk=Npkn_k = Np_k を代入すると 1N∑kpkσk2\frac1N\sum_kp_k\sigma_k^2 で、1 の分解から残りが従います。

4. 数列についての Cauchy–Schwarz の不等式から

(∑kpkσk)2=(∑kpkσknk⋅nk)2≤(∑kpk2σk2nk)(∑knk)=N∑kpk2σk2nk\Bigl(\sum_kp_k\sigma_k\Bigr)^2 = \Bigl(\sum_k\frac{p_k\sigma_k}{\sqrt{n_k}}\cdot\sqrt{n_k}\Bigr)^2 \le \Bigl(\sum_k\frac{p_k^2\sigma_k^2}{n_k}\Bigr)\Bigl(\sum_kn_k\Bigr) = N\sum_k\frac{p_k^2\sigma_k^2}{n_k}

です。等号は 2 つのベクトルが比例するとき、すなわち pkσk/nk=λnkp_k\sigma_k/\sqrt{n_k} = \lambda\sqrt{n_k}、nk=pkσk/λn_k = p_k\sigma_k/\lambda のときで、∑nk=N\sum n_k = N から λ=∑jpjσj/N\lambda = \sum_jp_j\sigma_j/N です。最後の不等式も Cauchy–Schwarz で、(∑kpk⋅pkσk)2≤∑kpk⋅∑kpkσk2=∑kpkσk2\bigl(\sum_k\sqrt{p_k}\cdot\sqrt{p_k}\sigma_k\bigr)^2 \le \sum_kp_k\cdot\sum_kp_k\sigma_k^2 = \sum_kp_k\sigma_k^2 です。

3 は、比例配分の層別サンプリングが決して損をしないことを述べています。取り除かれるのは層間分散 ∑kpk(μk−I)2\sum_kp_k(\mu_k - I)^2 で、層の平均 μk\mu_k が層ごとに大きく違うほど、つまり ff の変動が層の分け方でよく説明されるほど効きます。4 の Neyman 配分は、ばらつきの大きい層に多くの標本を割り当てます。ただし σk\sigma_k は未知なので予備の標本で推定する必要があり、推定がまずいと比例配分より悪くなりえます。標準誤差は、層ごとの標本分散 sk2s_k^2 から ∑kpk2sk2/nk\sqrt{\sum_kp_k^2s_k^2/n_k} で推定します(各層に 2 個以上の標本が要ります)。

例 5.5(eˣ の積分を 10 層に分ける)

例 4.6 の積分で、[0,1)[0,1) を KK 個の等しい区間 Ak=[k−1K,kK)A_k = [\frac{k-1}K, \frac kK) に分けます。pk=1/Kp_k = 1/K で、層 kk の標本は X(k)=(k−1+V)/KX^{(k)} = (k - 1 + V)/K(V∼U(0,1)V \sim \mathrm{U}(0,1))です。eX(k)=e(k−1)/KeV/Ke^{X^{(k)}} = e^{(k-1)/K}e^{V/K} なので

σk2=e2(k−1)/KvK,vK=Var(eV/K)=K(e2/K−1)2−K2(e1/K−1)2\sigma_k^2 = e^{2(k-1)/K}v_K, \qquad v_K = \mathrm{Var}(e^{V/K}) = \frac{K(e^{2/K} - 1)}{2} - K^2(e^{1/K} - 1)^2

です。等比級数の和から

∑k=1Kpkσk2=vKK⋅e2−1e2/K−1\sum_{k=1}^Kp_k\sigma_k^2 = \frac{v_K}{K}\cdot\frac{e^2 - 1}{e^{2/K} - 1}

で、K=10K = 10 では v10≈9.216×10−4v_{10} \approx 9.216\times10^{-4}、∑kpkσk2≈0.002659\sum_kp_k\sigma_k^2 \approx 0.002659 です。σ2≈0.24204\sigma^2 \approx 0.24204 の 0.01100.0110 倍で、分散は約 1/911/91 になります。層の幅を 1/K1/K にすると層内分散は 1/K21/K^2 に比例して減るので(滑らかな ff では σk2≈f′(x)2/(12K2)\sigma_k^2 \approx f'(x)^2/(12K^2))、1 次元では層を細かくするほど効きます。dd 次元で各軸を KK 等分すると層の数が KdK^d になり、高次元ではすべての変数を層別することはできません。重要な少数の変数だけを層別します。

次のコードは、例 4.6 の 4 つの方法を N=104N = 10^4 で 200200 回ずつ独立に繰り返し、推定量の分散の比を閉じた形の理論値と比べます。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
e = np.e
I = e - 1
s2 = (e**2 - 1) / 2 - (e - 1) ** 2 # Var(e^U)
cov_anti = e - (e - 1) ** 2 # Cov(e^U, e^{1-U})
cov_cv = 1 - (e - 1) / 2 # Cov(e^U, U)
K = 10
vK = K * (np.exp(2 / K) - 1) / 2 - (K * (np.exp(1 / K) - 1)) ** 2 # Var(e^{V/K}), V ~ U(0,1)
within = vK * (e**2 - 1) / (K * (np.exp(2 / K) - 1)) # sum_k p_k sigma_k^2
theory = {"単純": 1.0, "対称変量": (s2 + cov_anti) / s2,
"制御変量": 1 - cov_cv**2 / (s2 / 12), "層別(10層)": within / s2}
rng = np.random.default_rng(20261008)
N, R = 10**4, 200
est = {k: np.empty(R) for k in theory}
beta = 12 * cov_cv # 最適な係数 beta*(既知として使う)
for r in range(R):
u = rng.random(N)
est["単純"][r] = np.exp(u).mean()
h = u[: N // 2]
est["対称変量"][r] = 0.5 * (np.exp(h) + np.exp(1 - h)).mean()
est["制御変量"][r] = (np.exp(u) - beta * (u - 0.5)).mean()
x = (np.arange(N) % K + u) / K # 各層に N/K 個(比例配分)
est["層別(10層)"][r] = np.exp(x).mean()
v0 = est["単純"].var(ddof=1)
rel = np.sqrt(4 / (R - 1)) # 分散の比の相対標準誤差(正規近似)
print(f"sigma^2 = {s2:.6f}, beta* = {beta:.6f}")
for k in theory:
m, v = est[k].mean(), est[k].var(ddof=1)
ratio = v / v0
print(f"{k:10s} 平均の偏り = {(m - I)/np.sqrt(v/R):+.2f} SE 分散比 = {ratio:.5f} ± {ratio*rel:.5f} 理論 = {theory[k]:.5f}")
sigma^2 = 0.242036, beta* = 1.690309
単純 平均の偏り = +0.69 SE 分散比 = 1.00000 ± 0.14178 理論 = 1.00000
対称変量 平均の偏り = +1.10 SE 分散比 = 0.02794 ± 0.00396 理論 = 0.03233
制御変量 平均の偏り = -0.16 SE 分散比 = 0.01512 ± 0.00214 理論 = 0.01628
層別(10層) 平均の偏り = +0.27 SE 分散比 = 0.01074 ± 0.00152 理論 = 0.01099

4 つの推定量とも、200 回の平均は真値から標準誤差の 1.1 倍以内にあり(不偏性と矛盾しません)、分散の比は理論値と標準誤差の 1.2 倍以内で一致しています。分散の比の標準誤差は、200 個の標本から求めた 2 つの分散の比のばらつきを正規近似 4/(R−1)\sqrt{4/(R-1)} で見積もったものです。

これまでの方法は、目標の分布 pp から標本を取っていました。重点サンプリングは、別の分布 qq から標本を取り、密度の比で補正します。被積分関数が大きい領域に標本を集めるのが目的です。

定義 6.1(重点サンプリング)↗

pp を Rd\mathbb{R}^d 上の確率密度、ff を ∫∣f∣p<∞\int|f|p < \infty を満たす可測関数、I=∫f(x)p(x) dxI = \int f(x)p(x)\,dx とする。確率密度 qq が、f(x)p(x)≠0f(x)p(x) \ne 0 となるすべての xx で q(x)>0q(x) > 0 を満たすとき、qq を提案密度という。

w(x)=p(x)q(x)(q(x)>0),w(x)=0(q(x)=0)w(x) = \frac{p(x)}{q(x)} \quad (q(x) > 0), \qquad w(x) = 0 \quad (q(x) = 0)

を重みという。密度 qq に従う独立な X1,…,XNX_1, \ldots, X_N に対して

I^Nis=1N∑i=1Nf(Xi) w(Xi)\hat I_N^{\mathrm{is}} = \frac1N\sum_{i=1}^N f(X_i)\,w(X_i)

を重点サンプリング推定量という。以下 Eq\mathbb{E}_q、Varq\mathrm{Var}_q は X∼qX \sim q についての期待値と分散を表す。

定理 6.2(重点サンプリングの分散と最適な提案)✓

定義 6.1 の設定で次が成り立つ。

  1. Eq[f(X)w(X)]=I\mathbb{E}_q[f(X)w(X)] = I。したがって I^Nis\hat I_N^{\mathrm{is}} は不偏である。
  2. Var(I^Nis)=1N(∫{q>0}f(x)2p(x)2q(x) dx−I2)\mathrm{Var}\bigl(\hat I_N^{\mathrm{is}}\bigr) = \dfrac1N\Bigl(\displaystyle\int_{\{q > 0\}}\frac{f(x)^2p(x)^2}{q(x)}\,dx - I^2\Bigr)(右辺の積分が +∞+\infty のときは分散も +∞+\infty)。
  3. c=∫∣f∣p>0c = \int|f|p > 0 とする。すべての提案密度 qq について ∫{q>0}f2p2/q≥c2\int_{\{q>0\}}f^2p^2/q \ge c^2 で、q∗=∣f∣p/cq^* = |f|p/c のとき等号が成り立つ。すなわち分散の最小値は (c2−I2)/N(c^2 - I^2)/N である。特に f≥0f \ge 0 ならば c=Ic = I で、q∗=fp/Iq^* = fp/I による推定量の分散は 00 である。
証明(定理 6.2)

1. {q>0}\{q > 0\} の上で fwq=fpfwq = fp です。{q=0}\{q = 0\} の上では提案密度の条件から fp=0fp = 0 です。よって

Eq[f(X)w(X)]=∫{q>0}f(x)p(x)q(x)q(x) dx=∫{q>0}f(x)p(x) dx=∫f(x)p(x) dx=I\mathbb{E}_q[f(X)w(X)] = \int_{\{q>0\}} f(x)\frac{p(x)}{q(x)}q(x)\,dx = \int_{\{q>0\}}f(x)p(x)\,dx = \int f(x)p(x)\,dx = I

です。不偏性は 定理 2.2 の 1 です。

2. 同じ計算で Eq[(fw)2]=∫{q>0}f2p2/q\mathbb{E}_q[(fw)^2] = \int_{\{q>0\}}f^2p^2/q です。定理 2.2 の 2 と Var=E[(⋅)2]−I2\mathrm{Var} = \mathbb{E}[(\cdot)^2] - I^2 から従います。

3. {q=0}\{q = 0\} の上で ∣f∣p=0|f|p = 0 なので、積分についての Cauchy–Schwarz の不等式から

c=∫{q>0}∣f∣pq⋅q dx≤(∫{q>0}f2p2q dx)1/2(∫q dx)1/2=(∫{q>0}f2p2q dx)1/2c = \int_{\{q>0\}}\frac{|f|p}{\sqrt q}\cdot\sqrt q\,dx \le \Bigl(\int_{\{q>0\}}\frac{f^2p^2}{q}\,dx\Bigr)^{1/2}\Bigl(\int q\,dx\Bigr)^{1/2} = \Bigl(\int_{\{q>0\}}\frac{f^2p^2}{q}\,dx\Bigr)^{1/2}

です。q∗=∣f∣p/cq^* = |f|p/c は確率密度で、fp≠0fp \ne 0 のところで正なので提案密度です。このとき {q∗>0}\{q^* > 0\} の上で f2p2/q∗=c∣f∣pf^2p^2/q^* = c|f|p なので、積分は c⋅c=c2c\cdot c = c^2 です。f≥0f \ge 0 なら c=∫fp=Ic = \int fp = I です。

3 は目標を示しますが、そのままでは使えません。q∗=fp/Iq^* = fp/I を書くには、求めたい II 自身が要るからです。この定理の読み方は、「qq を ∣f∣p|f|p の形に近づけるほど分散が減る」です。ff が狭い領域でだけ大きい(稀な事象の確率、鋭いピークをもつ尤度)とき、pp からの標本はほとんどその領域に入らず、単純な推定量の相対誤差は非常に大きくなります。その領域に標本を集める qq を使うと、分散が何桁も減ります。

逆に、qq の選び方がまずいと分散は増え、無限大にもなります。2 の被積分関数 f2p2/qf^2p^2/q は、qq が pp より速く 00 に近づく領域で大きくなります。

例 6.3(提案の裾が軽いと分散が無限大になる)

目標を p=N(0,σp2)p = N(0, \sigma_p^2)、提案を q=N(0,σq2)q = N(0, \sigma_q^2) とします。重みは w(x)=σqσpexp⁡(−x22(1σp2−1σq2))w(x) = \frac{\sigma_q}{\sigma_p}\exp\bigl(-\frac{x^2}{2}(\frac1{\sigma_p^2} - \frac1{\sigma_q^2})\bigr) で、

Eq[w2]=∫p2q dx=σq2π σp2∫−∞∞exp⁡(−x2(1σp2−12σq2))dx\mathbb{E}_q[w^2] = \int\frac{p^2}{q}\,dx = \frac{\sigma_q}{\sqrt{2\pi}\,\sigma_p^2}\int_{-\infty}^\infty\exp\Bigl(-x^2\Bigl(\frac{1}{\sigma_p^2} - \frac{1}{2\sigma_q^2}\Bigr)\Bigr)dx

です。指数の係数 a=1σp2−12σq2a = \frac1{\sigma_p^2} - \frac1{2\sigma_q^2} が正のとき、すなわち

σq2>σp22\sigma_q^2 > \frac{\sigma_p^2}{2}

のときに限り積分は収束し、Gauss 積分 ∫e−ax2dx=π/a\int e^{-ax^2}dx = \sqrt{\pi/a}(定理 3.3[広義積分・パラメータ積分とガンマ関数] で x↦x/ax \mapsto x/\sqrt a)から

Eq[w2]=σq2π σp22πσp2σq22σq2−σp2=σq2σp2σq2−σp2\mathbb{E}_q[w^2] = \frac{\sigma_q}{\sqrt{2\pi}\,\sigma_p^2}\sqrt{\frac{2\pi\sigma_p^2\sigma_q^2}{2\sigma_q^2 - \sigma_p^2}} = \frac{\sigma_q^2}{\sigma_p\sqrt{2\sigma_q^2 - \sigma_p^2}}

です。σq2≤σp2/2\sigma_q^2 \le \sigma_p^2/2 では Eq[w2]=∞\mathbb{E}_q[w^2] = \infty で、f≡1f \equiv 1(あるいは裾で 00 に近づかない任意の ff)の推定量の分散は無限大です。このとき I^Nis\hat I_N^{\mathrm{is}} は大数の法則で収束はしますが、ときどき現れる巨大な重みが標本平均を跳ね上げ、sNs_N による誤差の見積もりは当てになりません。提案の分散を目標より大きめに取る(σq=1.5σp\sigma_q = 1.5\sigma_p なら Eq[w2]=2.25/3.5≈1.203\mathbb{E}_q[w^2] = 2.25/\sqrt{3.5} \approx 1.203)のが安全な側です。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
def weights(sq, n, rng): # 目標 N(0,1)、提案 N(0, sq^2)
x = sq * rng.standard_normal(n)
return sq * np.exp(-0.5 * x**2 * (1 - 1 / sq**2))
for sq in (1.5, 0.6):
rng = np.random.default_rng(20261008)
cond = 2 * sq**2 > 1
ew2 = sq**2 / np.sqrt(2 * sq**2 - 1) if cond else np.inf
print(f"sigma_q = {sq}: E_q[w^2] の理論値 = {ew2:.4f}")
for n in (10**3, 10**4, 10**5, 10**6, 10**7):
w = weights(sq, n, rng)
print(f" N = {n:>8d} 平均 = {w.mean():.4f} 二乗平均 = {(w**2).mean():8.4f} 最大の重み = {w.max():9.2f}")
sigma_q = 1.5: E_q[w^2] の理論値 = 1.2027
N = 1000 平均 = 0.9962 二乗平均 = 1.1928 最大の重み = 1.50
N = 10000 平均 = 1.0026 二乗平均 = 1.2066 最大の重み = 1.50
N = 100000 平均 = 0.9978 二乗平均 = 1.1979 最大の重み = 1.50
N = 1000000 平均 = 1.0002 二乗平均 = 1.2028 最大の重み = 1.50
N = 10000000 平均 = 1.0000 二乗平均 = 1.2027 最大の重み = 1.50
sigma_q = 0.6: E_q[w^2] の理論値 = inf
N = 1000 平均 = 0.9827 二乗平均 = 2.4232 最大の重み = 26.76
N = 10000 平均 = 0.9779 二乗平均 = 2.8601 最大の重み = 52.37
N = 100000 平均 = 0.9920 二乗平均 = 7.0902 最大の重み = 510.61
N = 1000000 平均 = 0.9973 二乗平均 = 9.3320 最大の重み = 1163.03
N = 10000000 平均 = 0.9999 二乗平均 = 14.9321 最大の重み = 4688.85

σq=1.5\sigma_q = 1.5 では重みは 1.51.5 以下に有界で、二乗平均は理論値 1.20271.2027 に落ち着きます。σq=0.6\sigma_q = 0.6(σq2=0.36<0.5\sigma_q^2 = 0.36 < 0.5)では、重みの平均は 11 に近づいていきますが、二乗平均は NN を増やすたびに大きくなり、最大の重みも増え続けます。この標本から計算した標準誤差は、NN をいくら増やしても信用できません。

例 6.4(正規分布の裾確率 P(Z > 4))

Z∼N(0,1)Z \sim N(0,1) について I=P(Z>4)≈3.167×10−5I = \mathbb{P}(Z > 4) \approx 3.167\times10^{-5} を推定します。単純な推定量 1{Z>4}\mathbf{1}\{Z > 4\} の分散は I(1−I)I(1 - I) で、相対標準誤差は (1−I)/(NI)≈178/N\sqrt{(1 - I)/(NI)} \approx 178/\sqrt N です。N=106N = 10^6 でも 18%18\% です。

提案を平行移動した正規分布 q=N(μ,1)q = N(\mu, 1) とします。重みは w(x)=φ(x)/φ(x−μ)=e−μx+μ2/2w(x) = \varphi(x)/\varphi(x - \mu) = e^{-\mu x + \mu^2/2} で、定理 6.2 の 2 の積分は

∫4∞φ(x)2φ(x−μ) dx=∫4∞φ(x) e−μx+μ2/2 dx=eμ2∫4∞φ(x+μ) dx=eμ2(1−Φ(4+μ))\int_4^\infty\frac{\varphi(x)^2}{\varphi(x - \mu)}\,dx = \int_4^\infty\varphi(x)\,e^{-\mu x + \mu^2/2}\,dx = e^{\mu^2}\int_4^\infty\varphi(x + \mu)\,dx = e^{\mu^2}\bigl(1 - \Phi(4 + \mu)\bigr)

です(φ(x)e−μx=φ(x+μ)eμ2/2\varphi(x)e^{-\mu x} = \varphi(x + \mu)e^{\mu^2/2} を使いました)。μ=4\mu = 4 では e16(1−Φ(8))≈5.528×10−9e^{16}(1 - \Phi(8)) \approx 5.528\times10^{-9} で、1 標本あたりの分散は 5.528×10−9−I2≈4.525×10−95.528\times10^{-9} - I^2 \approx 4.525\times10^{-9} です。単純な推定量の分散 3.167×10−53.167\times10^{-5} の約 1/70001/7000 で、相対標準誤差は 2.12/N2.12/\sqrt N になります。

# Python 3.9.6, NumPy 2.0.2, SciPy 1.13.1, mpmath 1.3.0
import numpy as np
from scipy.special import erfc
from mpmath import mp, erfc as mp_erfc, sqrt as mp_sqrt, exp as mp_exp
mp.dps = 30
p_ref = float(mp_erfc(4 / mp_sqrt(2)) / 2)
print(f"参照値 P(Z > 4): mpmath = {p_ref:.12e}, scipy = {0.5 * erfc(4 / np.sqrt(2)):.12e}")
rng = np.random.default_rng(20261008)
N, mu = 10**6, 4.0
z = rng.standard_normal(N)
y = (z > 4).astype(float) # 単純な推定
x = z + mu # 提案 N(4, 1) からの標本
w = np.exp(-mu * x + mu**2 / 2) # 重み p(x)/q(x)
g = (x > 4) * w
for name, v in (("単純", y), ("重点サンプリング", g)):
est, se = v.mean(), v.std(ddof=1) / np.sqrt(N)
print(f"{name:10s} 推定値 = {est:.4e} ± {se:.1e} 相対標準誤差 = {se/est:.2%} 真値との差 = {(est - p_ref)/se:+.2f} SE")
var_is = float(mp_exp(16) * mp_erfc(8 / mp_sqrt(2)) / 2) - p_ref**2 # 1 標本あたりの分散(閉じた形)
print(f"1 標本あたりの分散: 単純 = {p_ref*(1-p_ref):.3e}, 重点 = {var_is:.3e}, 比 = {p_ref*(1-p_ref)/var_is:.0f}")
print(f"重みの有効標本サイズ / N = {w.sum()**2 / (w**2).sum() / N:.1e}")
参照値 P(Z > 4): mpmath = 3.167124183312e-05, scipy = 3.167124183312e-05
単純 推定値 = 3.2000e-05 ± 5.7e-06 相対標準誤差 = 17.68% 真値との差 = +0.06 SE
重点サンプリング 推定値 = 3.1664e-05 ± 6.7e-08 相対標準誤差 = 0.21% 真値との差 = -0.10 SE
1 標本あたりの分散: 単純 = 3.167e-05, 重点 = 4.525e-09, 比 = 6999
重みの有効標本サイズ / N = 1.2e-04

同じ N=106N = 10^6 で、相対標準誤差は 17.7%17.7\% から 0.21%0.21\% になりました(比は 6999≈84\sqrt{6999} \approx 84)。どちらの推定値も参照値から標準誤差の 0.10.1 倍以内です。最後の行の「有効標本サイズ」は次の節で定義します。この値が極端に小さいのに推定がうまくいっている理由もそこで説明します。

6.2. 自己正規化推定量と有効標本サイズ

Section titled “6.2. 自己正規化推定量と有効標本サイズ”

Bayes 統計の事後分布や Boltzmann 分布では、目標の密度が p=p~/Zp = \tilde p/Z の形で、正規化定数 Z=∫p~Z = \int\tilde p が未知です。このとき重み p/qp/q は計算できませんが、比の形にすれば ZZ が打ち消されます。

定義 6.5(自己正規化重点サンプリング・有効標本サイズ)↗

p~≥0\tilde p \ge 0 を 0<Z=∫p~<∞0 < Z = \int\tilde p < \infty を満たす可測関数、p=p~/Zp = \tilde p/Z、qq を p~(x)>0\tilde p(x) > 0 となるすべての xx で q(x)>0q(x) > 0 を満たす確率密度とし、w~=p~/q\tilde w = \tilde p/q(q=0q = 0 のところでは 00)と置く。密度 qq に従う独立な X1,…,XNX_1, \ldots, X_N に対して

I~N=∑i=1Nw~(Xi)f(Xi)∑i=1Nw~(Xi)\tilde I_N = \frac{\sum_{i=1}^N\tilde w(X_i)f(X_i)}{\sum_{i=1}^N\tilde w(X_i)}

を自己正規化重点サンプリング推定量という(分母が 00 のときは 00 と定める)。また

Neff=(∑iw~(Xi))2∑iw~(Xi)2N_{\mathrm{eff}} = \frac{\bigl(\sum_i\tilde w(X_i)\bigr)^2}{\sum_i\tilde w(X_i)^2}

を重みの有効標本サイズという。

命題 6.6(自己正規化推定量の一致性・漸近分散・偏り)✓

定義 6.5 の設定で、∫∣f∣p<∞\int|f|p < \infty、I=∫fpI = \int fp とする。

  1. N→∞N \to \infty で I~N→I\tilde I_N \to I(概収束)。
  2. Eq[w~2(1+f2)]<∞\mathbb{E}_q[\tilde w^2(1 + f^2)] < \infty かつ τ2:=Eq[w~2(f−I)2]/Z2>0\tau^2 := \mathbb{E}_q[\tilde w^2(f - I)^2]/Z^2 > 0 ならば、N(I~N−I)\sqrt N(\tilde I_N - I) は N(0,τ2)N(0, \tau^2) に分布収束する。
  3. ff が有界(∣f∣≤Mf|f| \le M_f)で、Eq[w~2]<∞\mathbb{E}_q[\tilde w^2] < \infty かつ Pq(w~(X)>0)=1\mathbb{P}_q(\tilde w(X) > 0) = 1 ならば E[I~N]−I=−Eq[w~2(f−I)]NZ2+RN,∣RN∣≤2Mf Varq(w~)NZ2.\mathbb{E}[\tilde I_N] - I = -\frac{\mathbb{E}_q[\tilde w^2(f - I)]}{NZ^2} + R_N, \qquad |R_N| \le \frac{2M_f\,\mathrm{Var}_q(\tilde w)}{NZ^2}. 特に偏りは O(1/N)O(1/N) である。
  4. 1≤Neff≤N1 \le N_{\mathrm{eff}} \le N(分母が正のとき)であり、Eq[w~2]<∞\mathbb{E}_q[\tilde w^2] < \infty ならば Neff/N→Z2/Eq[w~2]=1/Eq[w2]N_{\mathrm{eff}}/N \to Z^2/\mathbb{E}_q[\tilde w^2] = 1/\mathbb{E}_q[w^2](概収束)。ここで w=w~/Z=p/qw = \tilde w/Z = p/q。

次の証明のうち 3(偏りの評価)は、推定量が「分子の平均 ÷ 分母の平均」という比の形で、比の期待値は期待値の比にならないために少し手間がかかります。分母の逆数を、分母が ZZ に近いことを使って ZZ のまわりで展開し、各項の期待値を評価する、という方針です。

証明(命題 6.6)

ai=w~(Xi)(f(Xi)−I)a_i = \tilde w(X_i)(f(X_i) - I)、bi=w~(Xi)b_i = \tilde w(X_i) と置き、AN=1N∑aiA_N = \frac1N\sum a_i、BN=1N∑biB_N = \frac1N\sum b_i とします。定理 6.2 の 1 と同じ計算で

Eq[b1]=∫p~=Z,Eq[a1]=∫p~ (f−I)=Z(I−I)=0\mathbb{E}_q[b_1] = \int\tilde p = Z, \qquad \mathbb{E}_q[a_1] = \int\tilde p\,(f - I) = Z(I - I) = 0

です。BN>0B_N > 0 のとき I~N−I=∑bif(Xi)∑bi−I=AN/BN\tilde I_N - I = \frac{\sum b_if(X_i)}{\sum b_i} - I = A_N/B_N です。

1. 大数の強法則(定理 4.5[大数の法則と中心極限定理])から AN→0A_N \to 0、BN→Z>0B_N \to Z > 0(概収束)です。よって確率 11 で、十分大きい NN では BN>0B_N > 0 で、I~N−I=AN/BN→0\tilde I_N - I = A_N/B_N \to 0 です。

2. 仮定から a1∈L2a_1 \in L^2 で、Varq(a1)=Eq[w~2(f−I)2]=Z2τ2>0\mathrm{Var}_q(a_1) = \mathbb{E}_q[\tilde w^2(f - I)^2] = Z^2\tau^2 > 0 です。中心極限定理(定理 5.6[大数の法則と中心極限定理])から NAN/(Zτ)\sqrt NA_N/(Z\tau) は標準正規分布に分布収束します。BN/Z→1B_N/Z \to 1(概収束、したがって確率収束)なので、Slutsky の定理(命題 6.1[大数の法則と中心極限定理])から NAN/(τBN)\sqrt NA_N/(\tau B_N) も標準正規分布に分布収束します。定理 2.2 の 4 の証明と同じく、BN=0B_N = 0 となる確率は 00 に収束するので、N(I~N−I)/τ\sqrt N(\tilde I_N - I)/\tau も同じ極限をもちます。

3. 仮定から確率 11 で BN>0B_N > 0 です。I~N\tilde I_N は f(Xi)f(X_i) の重みつき平均なので ∣I~N∣≤Mf|\tilde I_N| \le M_f、また ∣I∣≤Mf|I| \le M_f から ∣AN/BN∣≤2Mf|A_N/B_N| \le 2M_f です。恒等式

1B=1Z−B−ZZ2+(B−Z)2Z2B(B>0)\frac{1}{B} = \frac1Z - \frac{B - Z}{Z^2} + \frac{(B - Z)^2}{Z^2B} \qquad (B > 0)

(右辺を通分すると ZB−B(B−Z)+(B−Z)2Z2B=Z2Z2B\frac{ZB - B(B-Z) + (B-Z)^2}{Z^2B} = \frac{Z^2}{Z^2B})に ANA_N を掛けて期待値を取ります。E[AN]=0\mathbb{E}[A_N] = 0 です。aia_i と bjb_j(i≠ji \ne j)は独立で E[ai]=0\mathbb{E}[a_i] = 0 なので、

E[AN(BN−Z)]=1N2∑iE[ai(bi−Z)]=1NEq[a1b1]=1NEq[w~2(f−I)]\mathbb{E}[A_N(B_N - Z)] = \frac{1}{N^2}\sum_i\mathbb{E}[a_i(b_i - Z)] = \frac1N\mathbb{E}_q[a_1b_1] = \frac1N\mathbb{E}_q[\tilde w^2(f - I)]

です。第 3 項は、∣AN/BN∣≤2Mf|A_N/B_N| \le 2M_f から絶対値が 2Mf(BN−Z)2/Z22M_f(B_N - Z)^2/Z^2 以下で、その期待値は 2Mf Var(BN)/Z2=2Mf Varq(w~)/(NZ2)2M_f\,\mathrm{Var}(B_N)/Z^2 = 2M_f\,\mathrm{Var}_q(\tilde w)/(NZ^2) 以下です。以上を合わせて主張の式を得ます。

4. bi≥0b_i \ge 0 なので (∑bi)2≥∑bi2(\sum b_i)^2 \ge \sum b_i^2、また Cauchy–Schwarz の不等式から (∑bi⋅1)2≤N∑bi2(\sum b_i\cdot1)^2 \le N\sum b_i^2 です。よって 1≤Neff≤N1 \le N_{\mathrm{eff}} \le N です。Neff/N=BN2/(1N∑bi2)N_{\mathrm{eff}}/N = B_N^2/(\frac1N\sum b_i^2) で、大数の強法則から分子は Z2Z^2、分母は Eq[w~2]\mathbb{E}_q[\tilde w^2] に概収束します。

2 は、比 AN/BNA_N/B_N に対する delta 法(定理 7.1[点推定と漸近理論] の 2 変数版)の結論を、Slutsky の定理で直接導いたものです。漸近分散は、正規化した重み w=p/qw = p/q で書くと τ2=Eq[w2(f−I)2]\tau^2 = \mathbb{E}_q[w^2(f - I)^2] で、標準誤差は

se^=∑iw~i2(fi−I~N)2∑iw~i\widehat{\mathrm{se}} = \frac{\sqrt{\sum_i\tilde w_i^2(f_i - \tilde I_N)^2}}{\sum_i\tilde w_i}

で推定します。3 から、自己正規化推定量は不偏ではありませんが、偏り O(1/N)O(1/N) は標準誤差 O(N−1/2)O(N^{-1/2}) より高次で、NN が大きければ無視できます。

4 の有効標本サイズは、重みのばらつきの指標です。すべての重みが等しければ Neff=NN_{\mathrm{eff}} = N、1 個の重みだけが大きければ Neff≈1N_{\mathrm{eff}} \approx 1 です。(f−I)2(f - I)^2 と w2w^2 が qq のもとでほぼ無相関なら τ2≈Eq[w2] Eq[(f−I)2]\tau^2 \approx \mathbb{E}_q[w^2]\,\mathbb{E}_q[(f-I)^2] となり、「重みのせいで標本が N/Eq[w2]≈NeffN/\mathbb{E}_q[w^2] \approx N_{\mathrm{eff}} 個分の働きしかしない」と読めます。ただし NeffN_{\mathrm{eff}} は ff を見ない診断です。例 6.4 では Eq[w2]=e16\mathbb{E}_q[w^2] = e^{16} で、Neff/NN_{\mathrm{eff}}/N の極限は e−16≈1.1×10−7e^{-16} \approx 1.1\times10^{-7} と絶望的に見えますが、巨大な重みが現れるのは x<4x < 4 の側で、そこでは f=1{x>4}f = \mathbf{1}\{x > 4\} が 00 なので、推定には影響しません(出力の 1.2×10−41.2\times10^{-4} は、10610^6 個の標本ではこの極限にすら届いていないことも示しています)。特定の ff のための提案分布は、ほかの ff には使えないということです。事後分布のように多くの ff の期待値を同じ標本から求める場合には、NeffN_{\mathrm{eff}} が NN に比べて極端に小さくないことを確かめます。

注意 6.7(この章で扱わない方法)

  • 多重レベル Monte Carlo 法(Giles)は、離散化の細かさが違う近似の差を制御変量のように積み重ね、粗い近似に多くの標本を、細かい近似に少ない標本を割り当てます。確率微分方程式の期待値の計算量を大きく減らします。
  • 乱数の共通化は、2 つの設定の差 E[f1]−E[f2]\mathbb{E}[f_1] - \mathbb{E}[f_2] を推定するとき、両方に同じ乱数を使って正の相関を作り、差の分散を減らします。対称変量と逆向きの発想です。
  • 稀な事象の分割法は、事象に近づいた標本を複製して、稀な領域の標本を増やします。

これらは Glasserman の本と Asmussen–Glynn の本に詳しく書かれています。この章では定理としては扱いません。

演習 7.1易

例 6.4[大数の法則と中心極限定理] の推定量 π^N\hat\pi_N(標準偏差 1.642/N1.642/\sqrt N)で、∣π^N−π∣≤10−4|\hat\pi_N - \pi| \le 10^{-4} を確率 95%95\% で達成するのに必要な NN を、(1) 正規近似(定理 2.2 の 4)、(2) Chebyshev の不等式(命題 2.3 の 1)のそれぞれで求めよ。例 4.7 の制御変量つきの推定量を使うと (1) はどう変わるか。

解答

(1) 1.96×1.642/N≤10−41.96 \times 1.642/\sqrt N \le 10^{-4} から N≥(1.96×1.642×104)2≈1.04×109N \ge (1.96 \times 1.642 \times 10^4)^2 \approx 1.04\times10^9。

(2) 1/k2=0.051/k^2 = 0.05 から k=20≈4.472k = \sqrt{20} \approx 4.472 で、N≥(4.472×1.642×104)2≈5.39×109N \ge (4.472 \times 1.642 \times 10^4)^2 \approx 5.39\times10^9。正規近似の 20/1.962≈5.220/1.96^2 \approx 5.2 倍です。

制御変量つきの推定量は 1 標本あたりの分散が約 1/1041/104 なので、(1) は 1.04×109/104≈1.0×1071.04\times10^9/104 \approx 1.0\times10^7 になります。必要な標本数は分散に比例するので、分散低減の倍率がそのまま標本数の節約になります。

演習 7.2易

U∼U(0,1)U \sim \mathrm{U}(0,1)、f(u)=(u−12)2f(u) = (u - \frac12)^2 とする。対称変量による推定量の分散を単純な推定量の分散と比べよ。また、f(u)=u2f(u) = u^2 ではどうなるか。

解答

f(u)=(u−12)2f(u) = (u - \frac12)^2 は f(1−u)=f(u)f(1 - u) = f(u) を満たすので、Cov(f(U),f(1−U))=Var(f(U))=σ2\mathrm{Cov}(f(U), f(1-U)) = \mathrm{Var}(f(U)) = \sigma^2 です。定理 4.3 の 2 の等式(単調性は不等号にだけ使われています)から分散は 2σ2/N2\sigma^2/N で、単純な推定量の 2 倍です。ff が単調でないので、定理の不等号は保証されません。

f(u)=u2f(u) = u^2 は単調増加です。E[U2]=13\mathbb{E}[U^2] = \frac13、σ2=15−19=445\sigma^2 = \frac15 - \frac19 = \frac4{45}、E[U2(1−U)2]=13−24+15=130\mathbb{E}[U^2(1-U)^2] = \frac13 - \frac24 + \frac15 = \frac1{30} から Cov=130−19=−790\mathrm{Cov} = \frac1{30} - \frac19 = -\frac7{90} です。分散は (445−790)/N=190N(\frac4{45} - \frac7{90})/N = \frac{1}{90N} で、単純な推定量の 190/445=18\frac1{90}/\frac4{45} = \frac18 倍です。

演習 7.3標準

例 6.4 を一般化して、P(Z>a)\mathbb{P}(Z > a)(a>0a > 0)を提案 N(μ,1)N(\mu, 1) の重点サンプリングで推定する。(1) 推定量の 2 次モーメントが m(μ)=eμ2(1−Φ(a+μ))m(\mu) = e^{\mu^2}(1 - \Phi(a + \mu)) であることを示せ。(2) mm を最小にする μ∗\mu^* は 2μ∗R(a+μ∗)=12\mu^*R(a + \mu^*) = 1 を満たすことを示せ。ここで R(x)=(1−Φ(x))/φ(x)R(x) = (1 - \Phi(x))/\varphi(x) は Mills 比である。(3) μ∗>a\mu^* > a を示せ。

解答

(1) 例 6.4 の計算で 44 を aa に替えるだけです。∫a∞φ(x)2/φ(x−μ) dx=eμ2∫a∞φ(x+μ) dx=eμ2(1−Φ(a+μ))\int_a^\infty\varphi(x)^2/\varphi(x-\mu)\,dx = e^{\mu^2}\int_a^\infty\varphi(x + \mu)\,dx = e^{\mu^2}(1 - \Phi(a + \mu))。

(2) m′(μ)=eμ2(2μ(1−Φ(a+μ))−φ(a+μ))=eμ2φ(a+μ)(2μR(a+μ)−1)m'(\mu) = e^{\mu^2}\bigl(2\mu(1 - \Phi(a + \mu)) - \varphi(a + \mu)\bigr) = e^{\mu^2}\varphi(a+\mu)\bigl(2\mu R(a + \mu) - 1\bigr) です。μ≤0\mu \le 0 では括弧の中が負で mm は減少するので、最小点は μ>0\mu > 0 にあり、そこで m′(μ∗)=0m'(\mu^*) = 0、すなわち 2μ∗R(a+μ∗)=12\mu^*R(a + \mu^*) = 1 です(μ→∞\mu \to \infty で m(μ)→∞m(\mu) \to \infty となることは、Mills 比の下界 R(x)>x/(1+x2)R(x) > x/(1 + x^2) から m(μ)>eμ2φ(a+μ)a+μ1+(a+μ)2m(\mu) > e^{\mu^2}\varphi(a+\mu)\frac{a+\mu}{1 + (a+\mu)^2} で、指数部分が μ2−(a+μ)2/2→∞\mu^2 - (a+\mu)^2/2 \to \infty となることから分かります。よって最小点は存在します)。

(3) Mills 比の上界 R(x)<1/xR(x) < 1/x(x>0x > 0。定理 7.1[特性関数と Gauss ベクトル] の 2)を x=a+μ∗x = a + \mu^* に使うと、1=2μ∗R(a+μ∗)<2μ∗/(a+μ∗)1 = 2\mu^*R(a + \mu^*) < 2\mu^*/(a + \mu^*) から a+μ∗<2μ∗a + \mu^* < 2\mu^*、すなわち μ∗>a\mu^* > a です。最適な平行移動は、境界 aa より少し奥です。a=4a = 4 では数値的に μ∗≈4.12\mu^* \approx 4.12 で、2 次モーメントは μ=4\mu = 4 の 5.528×10−95.528\times10^{-9} から 5.488×10−95.488\times10^{-9} へ 0.7%0.7\% 減るだけなので、実用上は μ=a\mu = a で十分です。

演習 7.4標準

X∼U(0,1)X \sim \mathrm{U}(0,1)、f(x)=1{x>0.9}⋅10(x−0.9)f(x) = \mathbf{1}\{x > 0.9\}\cdot 10(x - 0.9) とし、層を A1=[0,0.9]A_1 = [0, 0.9]、A2=(0.9,1)A_2 = (0.9, 1) とする。σ2\sigma^2、比例配分の分散、Neyman 配分とその分散を求めよ。

解答

A1A_1 の上で f=0f = 0 なので μ1=0\mu_1 = 0、σ1=0\sigma_1 = 0。A2A_2 の上では f(X(2))=Vf(X^{(2)}) = V(V∼U(0,1)V \sim \mathrm{U}(0,1))なので μ2=12\mu_2 = \frac12、σ22=112\sigma_2^2 = \frac1{12}。p1=0.9p_1 = 0.9、p2=0.1p_2 = 0.1 です。

  • I=0.1×12=0.05I = 0.1 \times \frac12 = 0.05。E[f2]=0.1×13\mathbb{E}[f^2] = 0.1 \times \frac13 から σ2=130−0.0025≈0.03083\sigma^2 = \frac1{30} - 0.0025 \approx 0.03083。
  • 比例配分: 定理 5.4 の 3 から 1N∑pkσk2=0.112N≈0.00833/N\frac1N\sum p_k\sigma_k^2 = \frac{0.1}{12N} \approx 0.00833/N。単純な推定量の 0.270.27 倍。確認として層間分散は 0.9(0−0.05)2+0.1(0.5−0.05)2=0.02250.9(0 - 0.05)^2 + 0.1(0.5 - 0.05)^2 = 0.0225 で、0.00833+0.0225=0.030830.00833 + 0.0225 = 0.03083 です。
  • Neyman 配分: nk∝pkσkn_k \propto p_k\sigma_k から n1=0n_1 = 0、n2=Nn_2 = N(σ1=0\sigma_1 = 0 の層には、μ1=0\mu_1 = 0 が既知なので標本が要りません)。分散は 1N(∑pkσk)2=0.0112N≈0.000833/N\frac1N(\sum p_k\sigma_k)^2 = \frac{0.01}{12N} \approx 0.000833/N で、比例配分のさらに 1/101/10、単純な推定量の 0.0270.027 倍です。

Neyman 配分は、ここでは「ff が 00 でない領域にだけ標本を置く」という重点サンプリングと同じことをしています。実際、qq を A2A_2 上の一様分布とした重点サンプリング推定量は 0.1×V0.1 \times V の標本平均で、分散は同じ 0.0112N\frac{0.01}{12N} です。

  1. A. B. Owen, Monte Carlo theory, methods and examples, 2013 — 著者が公開している本(artowen.su.domains/mc)。第 8 章(分散低減)、第 9 章(重点サンプリング)。
  2. P. Glasserman, Monte Carlo Methods in Financial Engineering, Springer, 2004 — 第 4 章(分散低減法)。
  3. S. Asmussen, P. W. Glynn, Stochastic Simulation: Algorithms and Analysis, Springer, 2007 — 第 III 章(出力の解析)、第 V 章(分散低減)、第 VI 章(稀な事象)。
  4. C. P. Robert, G. Casella, Monte Carlo Statistical Methods, 2nd ed., Springer, 2004 — 第 3 章(Monte Carlo 積分)、第 4 章(Monte Carlo 法の分散の制御)。
  5. J. M. Hammersley, D. C. Handscomb, Monte Carlo Methods, Methuen, 1964 — 対称変量・制御変量の古典的な解説。
  6. E. Novak, Deterministic and Stochastic Error Bounds in Numerical Analysis, Lecture Notes in Mathematics 1349, Springer, 1988 — 決定的な求積則の下界と Monte Carlo 法の比較。
  7. M. B. Giles, “Multilevel Monte Carlo path simulation”, Operations Research 56 (2008), 607–617.

このテーマの 100 本ノック(50 問)

執筆: Claude Code(Opus 5.5)、Claude Code(Sonnet 5.5)・監査 2 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。