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

第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.)として扱います。
  • 乱数のシードを固定します。再現性を確保するためです。
  • 比較対象として閉じた式のあるヨーロピアンコールを使います。真の値がわかるので、推定誤差を直接測れます。

具体的なパラメータは次の通りです。原資産価格 、行使価格 、無リスク金利 (年率・連続複利)、ボラティリティ (年率)、満期 年。

リスク中立測度のもとで、満期の株価は

と書けます。ここで は標準正規分布に従う確率変数です。コールのペイオフは で、その割引現在価値は

です。モンテカルロ法は、 を独立に標準正規分布から生成し、それぞれについて (2.1) と (2.2) を計算し、割引ペイオフの標本平均

を期待値 の推定値とします。

この手順の正当性は、標本平均が期待値に収束するという大数の法則に支えられています。次の節で定理を正確に述べます。

3. 主張 ― 誤差は標本数の平方根で縮む

3つの定理を正確に述べます。

定理 THM-MC-1(一致性) が独立同分布で であるとき、標本平均 は

すなわち確率1で期待値に収束する(強法則)。

定理 THM-MC-2(誤差の速さ) が独立同分布で分散 であるとき、標本平均の分散は

である。したがって標準誤差は

であり、精度を1桁()にするには を 倍にする必要がある。

定理 THM-MC-3(信頼区間) が独立同分布で であるとき、中心極限定理により

である。 を標本標準偏差 で置き換えても収束は変わらない。したがって、漸近的な 信頼区間は

で与えられる。ここで は標準正規分布の上側 点である。

THM-MC-2 が実用上最も重要です。標準誤差が でしか減らないという事実は、精度を上げるのが非常に高くつくことを意味します。

証明を読む(読まなくても記事は完結します)

4. 証明 ― 標本平均の分散を計算する

この節は読まなくても記事は完結します。

この証明を追いたい人は、数学編 第18回「収束の4概念」、数学編 第32回「乱数生成」へ。

THM-MC-1 の証明

大数の強法則の証明は数学編 M32 で与えています。ここではその結果を使います。

は独立同分布で です。数学編 M32 の定理 THM-M32-1(コルモゴロフの強法則)より、

が成り立ちます。これは標本平均が確率1で期待値に収束することを述べています。

モンテカルロ法の文脈では、 は 番目の乱数から計算した割引ペイオフです。標本を増やせば推定値は真の期待値に(確率1で)一致する、というのが「一致性」の意味です。 ∎

THM-MC-2 の証明

が独立同分布で、各 の分散が であるとします。

ステップ1: 標本平均の分散を分解する。

標本平均 の分散を計算します。 は独立なので、和の分散は分散の和に分解できます。

第2の等号は独立性を使いました。独立な確率変数の和の分散が分散の和になるのは、交差項 ()が独立性からゼロになるためです。

ステップ2: 同分布の仮定を使って簡略化する。

は同分布なので が全ての で成り立ちます。(4.1) に代入すると

を得ます。

ステップ3: 標準誤差を求める。

標準誤差は分散の平方根です。(4.2) の両辺の平方根を取ると

です。

ステップ4: 精度と標本数の関係を導く。

誤差を にする、すなわち標準誤差を にするために必要な標本数 を求めます。(4.3) より

両辺を で割り( を仮定しています)、整理すると

を得ます。精度を1桁上げるには標本数を100倍にしなければなりません。これは という収束の遅さの直接の帰結です。 ∎

THM-MC-3 の証明

が独立同分布で であるとします。

ステップ1: 中心極限定理を適用する。

数学編 M32 の定理 THM-M32-2(中心極限定理)より、 を標準化した量

は分布の意味で標準正規分布に収束します。すなわち

です。これは、 が大きいとき の分布が平均 、分散 の正規分布で近似できることを意味します。

ステップ2: 信頼区間を構成する。

を標準正規分布の上側 点とします。(4.4) が漸近的に に従うので

が成り立ちます。 の定義を代入して について解くと

を得ます。

ステップ3: 母標準偏差を標本標準偏差で置き換える。

実際の計算では は未知です。標本標準偏差

で置き換えます。大数の法則により (確率1で)が成り立つので、スラツキーの定理を適用すると、 を に置き換えても漸近正規性は保たれます。したがって

が の漸近的な 信頼区間です。

信頼区間の場合、 で です。 ∎

5. 反例 ― 分散が無限だと機能しない

CEX-MC-1: 標本を増やせばすぐ正確になる、という期待

THM-MC-2 は、標準誤差が でしか縮まないと述べています。「100倍の標本で1桁」という速度は、直感よりもずっと遅いものです。

数値で確認します。標本数を 、、 と増やしたときの標準誤差は次のようになります。

標本数 標準誤差 基準との比
100 1.513528 1.000000
10,000 0.130383 0.086145
1,000,000 0.013191 0.008715

を100倍にしたとき()、標準誤差は約 になっています。 を 倍にしたとき()、標準誤差は約 です。 ですから、まさに平方根の法則通りです。

精度を1桁改善するために計算量を100倍にする。これがモンテカルロ法の根本的な限界です。

CEX-MC-2: 分散が有限という条件を壊す

THM-MC-1 と THM-MC-2 はどちらも を仮定しています(THM-MC-1 は弱い条件 ですが、THM-MC-2 は分散の有限性が必須です)。この仮定が破れるとどうなるかを見ます。

コーシー分布は期待値すら存在せず、当然分散も無限大です。この分布から標本を取って平均すると、 を増やしても収束しません。

標本数 標本平均
100
1,000
10,000
100,000

標本平均は を増やしても安定しません。 で という大きな値が出たかと思えば、 で に跳びます。これはコーシー分布の裾が厚すぎるためです。稀に発生する極端な値が標本平均を大きく引きずります。

この状況では信頼区間も機能しません。THM-MC-3 の前提である分散の有限性が壊れているので、中心極限定理が適用できず、信頼区間の幅を計算しても意味がないからです。

金融への教訓は明確です。ペイオフの分散が有限であることは、モンテカルロ法を使う前に確認すべき前提条件です。

CEX-MC-3: 1回の結果で精度を判断してよい、という姿勢

モンテカルロ推定は乱数に依存します。同じパラメータでもシード(乱数の初期値)を変えれば結果が変わります。

標本数 でシードを0から9まで変えた結果を見ます。

シード 推定値 標準誤差
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

では真の値から もずれていますが、 では誤差が に縮んでいます。

両対数で見た傾き。 標準誤差を に対してプロットしたときの傾きは です。理論値の にほぼ一致しており、THM-MC-2 の が数値的にも確認できます。

95% 信頼区間のカバレッジ。 標本数 で 回の試行を繰り返し、95% 信頼区間が真の値を含む割合を調べると でした。理論上の にぴったり一致しています。THM-MC-3 の信頼区間が正しく機能していることの数値的な証拠です。

モンテカルロ法は、閉じた式がなくても期待値を計算できる汎用的な方法です。ただし収束は であり、高精度を求めるなら大量の標本が必要になります。

7. 次回へ ― 同じ計算量で精度を上げる

今回は、モンテカルロ法の原理が大数の法則であること、収束速度が であること、そして信頼区間で精度を報告できることを見ました。

収束の遅さは深刻な問題です。精度を1桁上げるのに100倍の計算が要るなら、実用上の精度改善はすぐ限界に達します。

次回(第97回)では、同じ標本数のまま推定精度を上げる方法を扱います。標本の取り方を工夫するだけで、 を小さくできるのです。

よくある質問

なぜ乱数で期待値が計算できるのですか

標本を多く取ると平均が期待値に近づくからです。大数の法則そのものです。

どのくらいの標本数が必要ですか

欲しい精度によります。誤差を半分にするには4倍の標本が要ります。

どんなときに使うのですか

次元が高い問題や、経路に依存する商品で使います。

参考文献

  1. Glasserman P.、Monte Carlo Methods in Financial Engineering、Springer、2004年
  2. Boyle P. P.、Options ― A Monte Carlo Approach、Journal of Financial Economics、1977年、DOI 10.1016/0304-405X(77)90005-8

数値例は compute.py によりシード固定の擬似乱数で計算。本文中の数値は小数6桁で丸めている。

目次