第96回 モンテカルロ法の基礎 ― 期待値を乱数で叩く

位置: 第10部 第96回 / 前提: 第22回、第69回 / 数学編: M18、M32 / この回でできるようになること: モンテカルロ法でオプション価格を計算し、その誤差を信頼区間で示すことができる
0. 物語 ― 1回の結果で精度を判断する
手元に1000本の乱数があるとします。あなたはオプションの値段を計算するために、この乱数を使ってシミュレーションを1回だけ走らせました。画面に表示された答えは約7.26です。「よし、これが値段だ」と報告します。
ところが同僚が、同じ計算を別の乱数で走らせたところ、約8.44と出ました。差は1.18もあります。上司は首をかしげます。「同じ計算なのに、なぜ結果が1以上も違うのか」。
じつは、乱数の出方を変えて10回繰り返すと、答えは約6.64から約8.44まで、幅にして約1.80もばらつきます。正しい値は約8.02ですから、一番外れた結果は1.38も違っています。
これは計算のミスではありません。乱数を使う方法では、結果が毎回揺れるのは原理上当然のことです。大事なのは、その揺れ幅がどのくらいかを一緒に報告することです。この例では標準誤差がおよそ0.4で、「答えはプラスマイナス0.8くらいの範囲にある」と言えます。
この回では、乱数で期待値を近似する方法がなぜ正しいのか、どのくらいの速さで正確になるのか、そして精度の報告のしかたを証明します。精度を1桁上げるには乱数の本数を100倍にしなければなりません。答えを1つだけ出して終わりにするのではなく、必ず誤差の幅を添えるのが、この方法の鉄則です。
1. 動機 ― 式が無いとき期待値をどう計算するか
この回を読み終えると、モンテカルロ法でオプション価格を計算し、その誤差を信頼区間で示すことができます。
デリバティブの価格は「リスク中立測度での期待値を割り引いたもの」です。閉じた式がある場合――たとえばブラック・ショールズ公式が使えるヨーロピアンコール――は、その式に数値を代入すれば答えが出ます。
しかし、閉じた式が存在しない状況は珍しくありません。ペイオフが経路に依存する商品、複数の原資産に同時に依存する商品、あるいは単に分布の形が複雑すぎて積分が解析的に評価できない場合がそうです。
そのとき使う道具がモンテカルロ法です。乱数で標本を大量に生成し、ペイオフの平均を取るだけで期待値を近似できます。原理は大数の法則そのものです。
今回は、このモンテカルロ法がなぜ正しいのか(一致性)、どのくらいの速さで正確になるのか(標準誤差の減り方)、そしてどうやって精度を報告するのか(信頼区間)を、証明付きで示します。数値例では、閉じた式のあるヨーロピアンコールを比較対象にして、推定値が真の値に近づく様子を確認します。
この記事で証明すること
- THM-MC-1(一致性) 独立同分布の標本平均は、大数の法則により期待値に確率1で収束します。
- THM-MC-2(誤差の速さ) 標本平均の標準誤差は標本数の平方根に反比例します。精度を1桁上げるには標本数を100倍にする必要があります。
- THM-MC-3(信頼区間) 中心極限定理により、標本平均と標本標準偏差から漸近的な信頼区間が作れます。
2. 設定と仮定 ― 乱数で標本を作る
モンテカルロ法でオプション価格を計算する手順を、仮定を全て明示して書き出します。
- ペイオフの分散は有限とします。つまり
です。これは大数の法則と中心極限定理の前提条件です。 - 乱数は独立に生成されるとします。擬似乱数の質は十分とし、独立同分布(i.i.d.)として扱います。
- 乱数のシードを固定します。再現性を確保するためです。
- 比較対象として閉じた式のあるヨーロピアンコールを使います。真の値がわかるので、推定誤差を直接測れます。
具体的なパラメータは次の通りです。原資産価格
リスク中立測度のもとで、満期の株価は
と書けます。ここで
です。モンテカルロ法は、
を期待値
この手順の正当性は、標本平均が期待値に収束するという大数の法則に支えられています。次の節で定理を正確に述べます。
3. 主張 ― 誤差は標本数の平方根で縮む
3つの定理を正確に述べます。
定理 THM-MC-1(一致性)
が独立同分布で であるとき、標本平均 は すなわち確率1で期待値に収束する(強法則)。
定理 THM-MC-2(誤差の速さ)
が独立同分布で分散 であるとき、標本平均の分散は である。したがって標準誤差は
であり、精度を1桁(
)にするには を 倍にする必要がある。
定理 THM-MC-3(信頼区間)
が独立同分布で であるとき、中心極限定理により である。
を標本標準偏差 で置き換えても収束は変わらない。したがって、漸近的な 信頼区間は で与えられる。ここで
は標準正規分布の上側 点である。
THM-MC-2 が実用上最も重要です。標準誤差が
証明を読む(読まなくても記事は完結します)
4. 証明 ― 標本平均の分散を計算する
この節は読まなくても記事は完結します。
この証明を追いたい人は、数学編 第18回「収束の4概念」、数学編 第32回「乱数生成」へ。
THM-MC-1 の証明
大数の強法則の証明は数学編 M32 で与えています。ここではその結果を使います。
が成り立ちます。これは標本平均が確率1で期待値に収束することを述べています。
モンテカルロ法の文脈では、
THM-MC-2 の証明
ステップ1: 標本平均の分散を分解する。
標本平均
第2の等号は独立性を使いました。独立な確率変数の和の分散が分散の和になるのは、交差項
ステップ2: 同分布の仮定を使って簡略化する。
を得ます。
ステップ3: 標準誤差を求める。
標準誤差は分散の平方根です。(4.2) の両辺の平方根を取ると
です。
ステップ4: 精度と標本数の関係を導く。
誤差を
両辺を
を得ます。精度を1桁上げるには標本数を100倍にしなければなりません。これは
THM-MC-3 の証明
ステップ1: 中心極限定理を適用する。
数学編 M32 の定理 THM-M32-2(中心極限定理)より、
は分布の意味で標準正規分布に収束します。すなわち
です。これは、
ステップ2: 信頼区間を構成する。
が成り立ちます。
を得ます。
ステップ3: 母標準偏差を標本標準偏差で置き換える。
実際の計算では
で置き換えます。大数の法則により
が
5. 反例 ― 分散が無限だと機能しない
CEX-MC-1: 標本を増やせばすぐ正確になる、という期待
THM-MC-2 は、標準誤差が
数値で確認します。標本数を
| 標本数 |
標準誤差 | 基準との比 |
|---|---|---|
| 100 | 1.513528 | 1.000000 |
| 10,000 | 0.130383 | 0.086145 |
| 1,000,000 | 0.013191 | 0.008715 |
精度を1桁改善するために計算量を100倍にする。これがモンテカルロ法の根本的な限界です。
CEX-MC-2: 分散が有限という条件を壊す
THM-MC-1 と THM-MC-2 はどちらも
コーシー分布は期待値すら存在せず、当然分散も無限大です。この分布から標本を取って平均すると、
| 標本数 |
標本平均 |
|---|---|
| 100 | |
| 1,000 | |
| 10,000 | |
| 100,000 |
標本平均は
この状況では信頼区間も機能しません。THM-MC-3 の前提である分散の有限性が壊れているので、中心極限定理が適用できず、信頼区間の幅を計算しても意味がないからです。
金融への教訓は明確です。ペイオフの分散が有限であることは、モンテカルロ法を使う前に確認すべき前提条件です。
CEX-MC-3: 1回の結果で精度を判断してよい、という姿勢
モンテカルロ推定は乱数に依存します。同じパラメータでもシード(乱数の初期値)を変えれば結果が変わります。
標本数
| シード | 推定値 | 標準誤差 |
|---|---|---|
| 0 | 7.2629 | 0.3891 |
| 1 | 7.2550 | 0.3987 |
| 2 | 7.9706 | 0.4330 |
| 3 | 8.4375 | 0.4263 |
| 4 | 8.0142 | 0.4115 |
| 5 | 7.9885 | 0.4113 |
| 6 | 7.7752 | 0.3917 |
| 7 | 6.6387 | 0.3699 |
| 8 | 7.8510 | 0.4228 |
| 9 | 8.1212 | 0.4152 |
真の値は
1回の実行結果だけを見て「これが答えだ」と言うのは危険です。シード7の結果
しかし、標準誤差を見れば状況がわかります。標準誤差はおよそ
6. 数値例 ― 標本数を100万まで増やす
ヨーロピアンコール(
標本数を増やしたときのモンテカルロ推定値を見ます。
| 標本数 |
推定値 | 標準誤差 | 誤差 |
|---|---|---|---|
| 100 | 5.399539 | 0.846185 | |
| 1,000 | 7.705528 | 0.411463 | |
| 10,000 | 8.020134 | 0.133276 | |
| 100,000 | 8.009840 | 0.042015 | |
| 1,000,000 | 8.027044 | 0.013198 |
両対数で見た傾き。 標準誤差を
95% 信頼区間のカバレッジ。 標本数
モンテカルロ法は、閉じた式がなくても期待値を計算できる汎用的な方法です。ただし収束は
7. 次回へ ― 同じ計算量で精度を上げる
今回は、モンテカルロ法の原理が大数の法則であること、収束速度が
収束の遅さは深刻な問題です。精度を1桁上げるのに100倍の計算が要るなら、実用上の精度改善はすぐ限界に達します。
次回(第97回)では、同じ標本数のまま推定精度を上げる方法を扱います。標本の取り方を工夫するだけで、
よくある質問
なぜ乱数で期待値が計算できるのですか
標本を多く取ると平均が期待値に近づくからです。大数の法則そのものです。
どのくらいの標本数が必要ですか
欲しい精度によります。誤差を半分にするには4倍の標本が要ります。
どんなときに使うのですか
次元が高い問題や、経路に依存する商品で使います。
参考文献
- Glasserman P.、Monte Carlo Methods in Financial Engineering、Springer、2004年
- Boyle P. P.、Options ― A Monte Carlo Approach、Journal of Financial Economics、1977年、DOI 10.1016/0304-405X(77)90005-8
数値例は compute.py によりシード固定の擬似乱数で計算。本文中の数値は小数6桁で丸めている。

