上級編 6.  Libor Market Model 

6.6   モンテカルロシミュレーション

6.6.2    LMMをモンテカルロシミュレーションで近似する際の課題

6.6.2.2     乱数の生成にかかる時間

まず、6.80 式の拡散項にある m 次元の(それぞれ独立した)ブラウン運動 \(\bf z(t)^{Q_B}\)は平均 0、分散 1 で標準正規分布しますが、それを、コンピューターのアルゴリズムで生成した(擬似)標準正規乱数を使って表現します。生成する乱数の数をざっと見積もってみましょう。シミュレーションする時間軸を、最も期間の長いフォワード Libor の Fixing日である \(T_{N-1}\) まで取り、その間を、離散時間の間隔 Δt で分割します。Δt は、Libor のテナーに一致するように取るのが一般的です。すると、最終 Libor の期日が 40 年とすると、離散時間での分割数は 80~160 になります。シミュレーションは、すべての Libor(80~160個)で行いますが、Libor のベクトルを駆動するブラウン運動は、m 次元(m=3~5)なので、Libor ベクトル全体のサンプル経路を一個生成するのに必要は乱数の数は、\(\lfloor T_{n-1}/Δt\rfloor × m\) 個になります(但し、\(\lfloor T_{n-1}/Δt\rfloor × m\) は、かっこ内の割り算の商の小数点以下を切り捨てた整数部分)。そのシミュレーションを M 回試行するとすると、生成する必要がある乱数の数は \(M×\lfloor T_{n-1}/Δt\rfloor ×m\) となります。例えば生成するサンプル数を 10000、離散時間のステップ数を 160、ブラウン運動のベクトルの次元数を 5 とすると、約 800,000個の標準正規乱数を生成する必要があります。さらに、MCS の様々な課題を克服するテクニックとして、事前の予備シミュレーションを必要とする事が多々あり、実際に必要な乱数の数は、もっと多くなります。いずれにしても、一個一個の乱数生成にかかる時間が、ナノ秒あるいはマイクロ秒の単位であっても、塵も積もれば山となるで、合計すると相当な時間になります。従って、一個一個の乱数の生成時間は、出来るだけ小さくする事が望まれます。 

ところで、コンピューターで生成する擬似乱数は、完全な(?)乱数ではありません。初歩的な乱数生成アルゴリズム(単純な線形合同法など)で生成された乱数は、計算時間は早くても、そこから高次元の点を生成した場合、分布の偏りが見られ、乱数としての質は良くありません。また、生成された乱数の周期性の問題があります。これは、任意に与えたシード数からスタートして乱数列を生成していくと、どこかでシード数と同じ値が生成されます。すると、単純な線形合同法では、そこから同じ順番で同じ乱数列が生成される事になります。乱数の質を上げ、かつ同じ乱数列が発生する周期を長くするため、より高度なアルゴリズムがいくつか発表されています。しかし、高度なアルゴリズムほど、計算時間はよりかかります。 

さらに、このコンピューターアルゴリズムで直接生成される乱数は、[0,1) 間で均一に分布(一様分布)する一様乱数で、それを標準正規乱数に変換する為にさらに別のアルゴリズムを通す必要があります。一様乱数を標準正規乱数に変換するアルゴリズムについてもいくつか発表されていますが、アルゴリズムの計算時間と乱数の品質の間にトレードオフの関係があり、どれを使うかはケースバイケースです。いずれを使っても、完全な標準正規乱数は生成できませんが、それにかなり近い乱数が生成できます。 

6.6.2.3     推定誤差

シミュレーションで導出されたフォワード Libor ベクトルのサンプルから、将来のイールドカーブの分布(平均と期待値)が求まり、その分布は、LMM が想定する(真正の?)確率分布を近似したものになります。その近似された分布を使って、デリバティブズ価格のサンプル平均を計算します。そのサンプル平均は、サンプル数を増やせば、中心極限定理により、バイアスが無い限り、LMM が予想する真正の平均に近づいて行きます。サンプル平均と真の平均の差を推定誤差と呼びます。ただし、そもそも真正の確率分布が不明だから MCS を行っている訳で、MCSで真正の平均を特定する事はできません。MCS では、サンプル平均のごく近い範囲に、真正の平均があるという事が推察できれば、それで満足するしかありません。その“ごく近い範囲”を信頼区間と呼び、以下の方法で求めます。 

総サンプル数を N とし、そのサンプル値(サンプルごとのデリバティブズ価格)の分散を \(v_s\) とし、サンプルの平均を \(α_s\)、LMM が想定する真の平均を α とすると、サンプル平均と真の平均の推定誤差は、中心極限定理により、正規分布する事が知られており、その分散 \(σ_{error}^2\) (あるいは標準誤差 \(σ_{error}\) )は下記式で求まります。 

\[ σ_{error}^2=E\left[(α_s-α)^2 \right]= \frac {v_s}{N}~~~~or~~~~ σ_{error}=\sqrt {\frac {v_s}{N}} \]

サンプル平均 \(α_s\) から \(±σ_{error}×n\) 倍の範囲を信頼区間と呼び、一定の確率で、その区間内に真正の平均が含まれていると考える事ができます。その確率は、標準正規分布関数から求める事ができ、例えば n=1 とすれば約 68%、n=2 とすれば、約95%で、真の平均がその範囲に含まれていると見做せます。 

右辺を見れば分る通り、サンプル数 N を大きくしていけば、\(σ_{error}\) は次第に小さくなっていくので、信頼区間がどんどん狭まり、信頼区間が狭まれば、モンテカルロシミュレーションで生成されたデリバティブズ価格の信頼度が高まります。ただ、単にサンプル数を増やすだけでは、信頼区間の狭まり方は、\( O(1/\sqrt {N})\) のオーダーでしか小さくなりません。言い換えると、信頼区間を 1/2 にする為には、サンプル数を 4 倍にする必要があります。LMM では、サンプルを 1 個増やすのに、すべてのLiborの経路を生成する必要があり、計算負荷は小さくありません。 

そこで、より高速に信頼区間を狭める為のテクニックが数多く提示されています。それらは総称して、分散減少法(Variance Reduction Techniques)と呼ばれていますが、名前の通り、推定誤差の式の分子にあるサンプル分散値 \(v_s\) を小さくするテクニックです。分散低減法には様々な方法があり、大半のテクニックは、個別の商品の特性に大きく依存します。それらについては後ほど簡単に説明します。 

 

目次

Page Top に戻る

// // //