上級編 6.  Libor Market Model 

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

6.6.7   リスク感応度(Greeks)の計測

6.6.7.3   Path-Wise Derivative法
6.6.7.3.3   例2 LMMを使って生成されたサンプル経路でPWDを使う方法

LMM を使って、MCS による価格計算する必要がある商品では、Pathwise derivative法(“PWD”)による感応度の計算手順は、先ほどのBlack-Scholesモデルの例と比べると、はるかに複雑で、計算負荷も相当な量になります。それでも、有限差分近似による感応度の計算と比べれば、計算時間は節約できるので、このテクニックが使えるのであれば、有効活用すべきでしょう。 

ここでも、先ほどと同じ、\(L_M(t)\) を対象とした Caplet を商品例として使い、LMM を使ってサンプル経路を生成し、そこから PWD 法による感応度計算の方法を示します。ただ、LMM の場合、いくつかの困難な課題があるので、まずその主な課題を列挙します。 

  1. LMM はマルチファクターモデルで、モデルの対象となる確率変数の数が多い場合で 80~160 になります。これらすべてについてデルタを計算しようとすると、相当な計算量になり、計算時間は膨大になります。
  2. LMM では、オプション最終行使日における確率変数(フォワード金利)の値が、Black-Scholes モデルのように解析的には求まらず、離散時間でのシミュレーションを繰り返し、最終行使日までのサンプル経路を生成して求めます。その場合、パラメータでの微分の計算も、厳密にはサンプル経路を時間軸に沿って順次微分していく必要があり、計算時間がかかる事になります。そうすると、場合によっては有限差分近似の方法と、計算時間は大差なくなります。(計算時間を軽減するためのテクニックを、後で紹介します。)
  3. 6.168 式(Payoff/Numeraireの微分の期待値)を使う場合、LMM のような金利モデルでは、Payoff 関数のみならず、ニュメレール価格も確率変数に依存します。従って、ニュメレール価格は、Libor ベクトルの関数になるので、これの偏微分の計算は、結構大変です。(これも、計算時間を軽減するテクニックを使います。)
  4. また、LMM ではVolatility の期間構造を勘案するので、ベガの計測も、期間構造全体について行う必要があり、これも同様、非常に煩雑な計算が必要になります。
  5. これに加えて、ガンマやクロスガンマなどの2階微分まで求めようとすると、膨大な計算時間を要し、かつ推定誤差が大きくなります。

このようなポイントを意識しながら、古典的な LMM を使った場合の、PWD による感応度の計算方法を、具体例でみていきます。以下に、パラメータ \(θ_k\) を、各フォワードLibor の初期値 \(L_k (0),~k=1,…,M\) とし、これらに対する感応度、すなわちデルタを計算する方法を解説します。相当ややこしい手順を、できるだけ理解しやすいような説明を心がけますが、それでも解りにくいと思います。説明能力不足をご容赦下さい。なお、Volatilityへの感応度も、同様の手順なので、説明は省略させて頂きます。 

最初に、おおまかなプロセスを説明しておくと 

  1. まず、古典的 LMM について、拡散項係数(Volatility関数と相関行列の情報:その導出方法は既に説明済み)は外生的に与え、ドリフト項係数(Convexity調整に相当)は、スポットニュメレールに対応した係数にする。そこに Liborベクトルの初期値を与えて、LMM を具体化する。
  2. 確率変数を対数に変換し、伊藤の公式を使って、Libor の対数の SDE に変換する。これは、離散化スキームとして、対数オイラースキームを使うため。
  3. “Payoff関数のニュメレールとの相対価格”を、パラメータ \(L_k(0)\) で偏微分する。(6.168式の右辺を解析する)
  4. その偏微分を求めるプロセスは、非常に複雑になりますが、それをできるだけ詳しく解説。(実務の方は、この部分は飛ばし、結果だけみていただいて結構です。)そうすると、各フォワードLibor の \(L_k (0)\) での偏微分の式 \(\frac {∂L_i(t)}{∂L_k (0)},~~i=1,…,M\) にいきつく。
  5. その偏微分を求めるため、まず LMM を使ったサンプル経路を、対数オイラースキームで生成する。その生成されたサンプル値を、\(L_k(0)\) で偏微分する。
  6. このようにして導出された \(L_k(0)\) での偏微分は、非常に長い多項式になり、計算負荷が大きい。そこで、計算負荷を軽減するため、ドリフト項に含まれる、フォワードLiborベクトル(確率変数)を、初期値で固定し定数化する(そうしても、計算結果に大きな影響を及ぼさない事が知られている)。すると、大幅に簡略化された \(\frac {∂L_i (t)}{∂L_k (0)}\) の近似式が導出できる。
  7. ステップ3~6で導出した \(L_k (0)\) での偏微分を、サンプル毎に計算し、その平均値を取れば、オプション価格の \(L_k(0)\) への感応度が求まる。

これを、以下に詳述します。 

1. LMMの具体化 

まず古典的な LMM の確率微分方程式(SDE)を再記します。下記式は M 個のフォワードLiborを対象とする連立確率微分方程式になります。 

\[ \frac {dL_i(t)}{L_i (t)}= μ_i(t,{\bf L(t)})dt+{\bf σ_i(t)∙C∙dw(t)},~~~~~i=1,2,…,M \tag{6.1} \]

但し 

  • \({\bf dw(t)}~は~ d~次元(d \ll M)\) のブラウン運動ベクトル。
  • \({\bf C}~は~M×d\) 次の行列で、Libor の相関の情報を保持。すなわち相関行列を ρ とすると \(\bf ρ=C∙C^{\top}\)。
  • \(\bf σ_i(t)\) は Libor の変化率 Volatility(いわゆるBlack Volatility)を表す d 次元のベクトル。但し i 番目の要素のみ \(σ_i\) のスカラ値が入り、それ以外は 0 のベクトルを想定。(行列\( {\bf C}、ベクトル~{\bf σ_i(t)}\) の求め方は Section 6.3 で説明。基本的に過去データから外生的に与えれれる)

上の 6.1 式では、拡散項係数が \(\bf σ_i(t)∙C\) とベクトル × 行列で表現されていますが、\(\bf σ_i (t)\) は i 番目の要素以外は 0 なので、その i 番目の要素と、\(\bf C\) の i 行目のベクトルを使って \(σ_i (t)∙ \bf c_i\) とスカラ×ベクトルと表現しても、同じ意味になります。そこで、以下の説明を分かりやすくする為、\(σ_i (t)∙\bf c_i=λ_i (t)\) と置いて、6.1 式を、その表記で書き換えます。 

\[ \frac {dL_i(t)}{L_i (t)}= μ_i(t,{\bf L(t)})dt+{\bf \lambda_i(t)∙dw(t)},~~~~~i=1,2,…,M \tag{6.1'} \]

(このような表現にすると、\(\sqrt{Δt{\bf λ_i}}∙\sqrt{Δt{\bf λ_j}}=Δt \bf σ_{ij}^2\) は、Δt 間における \(L_i~と~ L_j\) の共分散に相当します。) 

ここで、確率測度を特定しますが、例としてスポット測度を選択したとします。(Section 6.2.6 スポット測度およびターミナル測度)。スポット測度に対応するニュメレールは、スポット Libor で継続運用する資金口座に相当し、式で表すと下記のようになります。すると、ニュメレールも確率変数である Libor の関数となります。 

\[ \begin{align} N_{Spot} (0)& =1, \\ N_{Spot} (T_M )& =\Pi_{i=1}^M \left(1+τ_i L_i (T_i)\right) \tag{6.179} \end{align} \]

確率測度が特定されたので、それに対応する 6.1 式のドリフト項 \(μ_i(t,L(t))\) は下記式のように特定されます。(Section 6.2.4 および Section 6.2.6 参照 ) 

\[ μ_i(t,{\bf L(t)})=\sum_{j=η(t)}^i \left( \frac {τ_j L_j(t)~ {\bf λ_i(t)∙λ_j(t)} }{1+τ_j L_j (t)} \right)dt,~~~~~i=1,…,M \tag{6.180} \]

但し、\(η(t)\) は、t 時における最も手前のフォワード Libor のインデックスを示す整数。\(τ_j\) は各 Libor のテナーで、\(τ_j=T_{j+1}-T_j\) 。以下では、\(τ_j\) はすべての Libor で同じとし、それを δ と表記します。 

このドリフト項を、6.1' 式に代入し、すべてのフォワード Libor の初期値を与えてやれば、LMM が具体化(うまくやれば解ける状態に)されたことになります。 

2. 伊藤の公式を使って、\(L_i (t)\) の対数の SDE に変換 

ここで、6.1' 式の SDE を、伊藤の公式を使って、\(L_i (t)\) の対数の SDE に変換します。すると下記式のようになります。 

\[ d \ln {L_i(t)}=\left(μ_i(t,{\bf L(t)})-\frac 1 2 ‖{\bf λ_i}‖^2 \right)dt+{\bf λ_i∙dw}(t),~~~~~ i=1,…,M \tag{6.181} \]

\(L_i (t)~を~\ln L_i(t)\) に変数変換するのは、MCS の離散化スキームを、通常のオイラースキームではなく、対数オイラースキームを使う為です。対数オイラースキームを使うと、拡散項の離散化誤差が無くなります。またフォワード Libor がマイナスになる可能性も無くなります。(離散化スキームについては、Section 6.6.5) 

3.Payoff(x,θ)/Numeraire(x,θ) の偏微分の導出 

さて PWD による感応度を求めるとは、6.168 式の右辺にある、Payoff/Numeraire の偏微分の期待値   \(N(t_0 )∙E\left[ \frac {∂}{∂θ_k} \left(\frac {payoff(T,{\bf θ})}{N(T,{\bf θ})} \right)\right]\) を、サンプル平均で求めようとするものです。すなわち、下記式の右辺のような演算で、\(θ_k\) に対する感応度を導出するものでした。 

\[ N(t_0 )∙E\left[\frac {∂}{∂θ_k} \left(\frac {payoff(T,{\bf θ})}{N(T,{\bf θ})} \right)\right] ≈ N(t_0 ) \frac 1 n \sum_{l=1}^n \frac {∂}{∂θ_k} \left( \frac {payoff(T,{\bf θ},ω^{(l)})} {N(T,{\bf θ},ω^{(l)})} \right) \]

但し、\(ω^{(l)},~l=1,…,n\) は、事象すなわちサンプルを表記するもとし、\((l)\) はそのインデックスを示すものとします。\(θ_k\) はパラメータベクトル θ の中のひとつ 

この式の右辺にある Payoff 関数を Caplet のそれにし、ニュメレールをスポットLibor 測度に対応するニュメレールにし(6.179式)、\(θ_k\)として k 番目のフォワードLibor の初期値 \(L_k(0)\) とした場合、上式の右辺は下記のようになります。 

\[ \begin{align} & N(t_0 ) \frac 1 n \sum_{l=1}^n \frac {∂}{∂θ_k} \left( \frac {payoff(T,{\bf θ},ω^{(l)})} {N(T,{\bf θ},ω^{(l)})} \right) \\ & = N(t_0 ) \frac 1 n \sum_{l=1}^n \frac {∂}{∂L_k(0)} \left(\frac {δ \left(\hat L_M^{(l)}(T_M,{\bf L(T)},…)-K \right)^+}{\Pi_{j=1}^M \left(1+δ \hat L_j^{(l)}(T_j,{\bf L(T)},…)\right)} \right),\\ & ~~~~k,j=1,…,M~~~l=1,…,n \tag{6.182} \end{align} \]

4. 6.182 式を関数の積の微分と連鎖定理を使って解析 

ここで、右辺の括弧内の関数は、分子も分母も、いずれもパラメータ \(L_k(0)\) の関数となっています(正確には、分子も分母もベクトル \(\bf L(T_M)\) の関数で、\({\bf L(T_M)}~が~L_k (0)\) の関数になっている)。これを、\(L_k(0)\) で偏微分すると、相当面倒くさい解析プロセスになりますが、その導出プロセスを以下に解説します。一応、出来るだけ解りやすく説明しようと思いますが、実務では、結論さえ分かればいいので、なんなら説明を読むのを飛ばし、ステップ 7.の、6.190 式まで行って下さい。その式をサンプル経路ごとに計算すれば、PWD による感応度が求まります。 

さて、6.182 式にある偏微分の解析を進めるため、まず関数の積の微分の公式と、連鎖定理を使って、下記のような形に分解します。 

\[ \begin{align} \frac {∂}{∂L_k(0)} & \left( \frac {payoff( T,{\bf L(T)},…,ω^{(l)})}{ N(T,{\bf L(T)},…,ω^{(l)})} \right) \\ & =\frac {∂payoff(T_M,{\bf L(T)}…,ω^{(l)})}{∂L_k(0)} \left(\frac {1}{N(T_M,{\bf L(T)}…,ω^{(l)})} \right) \\ & ~~~~~ +payoff (T_M,{\bf L(T)}…,ω^{(l)}) \frac {∂}{∂L_k(0)} \left(\frac {1}{N(T_M,{\bf L(T)}…,ω^{(l)})} \right) \\ & = \frac {∂payoff(T_M,{\bf L(T)}…,ω^{(l)})}{∂L_k(0)} \left(\frac {1}{N(T_M,{\bf L(T)}…,ω^{(l)})} \right) \\ & ~~~~~ +payoff(T_M,{\bf L(T)}…,ω^{(l)}) \sum_{q=k}^M \frac {∂N(T_M,{\bf L(T)}…,ω^{(l)})^{-1}}{∂L_q(T_M )} \frac {∂L_q (T_M )}{∂L_k(0)} \end{align} \]

但し、\(T_M\) 以前に Fixing が済んでいる Libor については、それ以降のレートは同じなので、\(L_q(T_M)=L_q(T_q)\)とします。 

このまま解析すると式が長くなって解りにくくなるので、右辺第1項にある \(\frac {∂payoff(T_M,{\bf L(T)}…,ω^{(l)})}{∂L_k(0)} \) と、第2項の \(\sum_{q=k}^M \frac {∂N(T_M,{\bf L(T)}…,ω^{(l)})^{-1}}{∂L_q(T_M )}~~ \frac {∂L_q (T_M )}{∂L_k(0)}\) を、それぞれ別個に評価して示します。 

まず第1項から、 

\[ \begin{align} \frac {∂payoff(T_M,{\bf L(T)}…,ω^{(l)})}{∂L_k(0)} & =\frac {∂(\hat L_M^{(l)}(T_M )-K)^+}{∂\hat L_M^{(l)}(T_M)}~ \frac {∂\hat L_M^{(l)}(T_M)}{∂L_k(0)} \\ & =I_{\{\hat L_M^{(l)}(T_M)>K\}} \frac {∂\hat L_M^{(l)}(T_M)}{∂L_k(0)},~~~~~l=1,…,n \tag{6.183} \end{align} \]

これは、すでに前のセクションの Black-Scholesモデルでの例で説明済みなので、簡単でした。 但し、まだ \(\frac {∂\hat L_M^{(l)}(T_M)}{∂L_k(0)}\)の解析が済んでません。これは後で説明します。 

 

続いて、第2項。これは、かなりややこしいです。 

\[ \begin{align} \frac {∂}{∂L_k(0)} & \left( \frac {1}{N(T,L_k (0)…,ω^{(l)}) } \right) \\ & = \frac {-1}{\left(N(T,L_k (0)…,ω^{(l)})\right)^2} \sum_{q=k}^M \frac {∂~N(T_M,{\bf L(T)}…,ω^{(l)})^{-1}}{∂L_q(T_M )}~ \frac {∂L_q (T_M )}{∂L_k(0)} \\ & = \frac {-1}{\Pi_{j=1}^M \left(1+δ\hat L_j^{(l)}(T_j)\right)^2 } \sum_{q=k}^M \frac {∂~\Pi_{j=1}^M (1+δ\hat L_j^{(l)}(T_j)) }{∂L_q(T_q)}~ \frac {∂\hat L_q^{(l)}(T_q)}{∂L_k(0)} \\ & = \frac {-1}{\Pi_{j=1}^M \left(1+δ\hat L_j^{(l)}(T_j)\right)^2 } \sum_{q=k}^M \frac {\delta ~\Pi_{j=1}^M (1+δ\hat L_j^{(l)}(T_j)) }{1+δ\hat L_q^{(l)}(T_q )}~\frac {∂\hat L_q^{(l)}(T_q)}{∂L_k(0)} \\ & = \frac {-1}{\Pi_{j=1}^M \left(1+δ\hat L_j^{(l)}(T_j)\right) } \sum_{q=k}^M \frac {δ}{1+δ \hat L_q^{(l)}(T_q)}~\frac {∂\hat L_q^{(l)}(T_q)}{∂L_k(0)} \tag{6.184} \end{align} \]

上記の解析プロセス(6.184式)は、ニュメレール価格の逆数を、\(L_k(0)\) で偏微分したものですが、ニュメレール価格は、フォワードLiborのベクトルに依存しており、 かつ各フォワードLiborが、\(L_k (0)\) に依存している事から(但し、Libor の期日が、\(L_k(0)\) より後にくる場合のみ)、 \(L_k(0)\) での偏微分は、各 Liborの \(L_k(0)\) での偏微分の総和になります。従って、上記のように、相当複雑な多項式になります。 こうやって求めた6.183 と 6.184 式を、6.182 式に代入すると、 

\[ \begin{align} N(t_0) & \frac 1 n \sum_{l=1}^n \frac {∂}{∂θ_k} \left( \frac {payoff(T,{\bf θ},ω^{(l)})}{N(T,{\bf θ},ω^{(l)})} \right) = N(t_0) \frac 1 n \sum_{l=1}^n\frac {∂}{∂θ_k} \left( \frac {δ(\hat L_M^{(l)}(T_M,{\bf L(T)})-K)^+}{\Pi_{j=1}^M \left(1+δ\hat L_j^{(l)}(T_j,{\bf L(T_j)}) \right) } \right) \\ & = \small {N(t_0 ) \frac 1 n \sum_{l=1}^n \left( \frac {I_{\{\hat L_M^{(l)}(T_M)>K\}}}{N(T,θ,ω^{(l)})}~\frac {∂\hat L_M^{(l)}(T_M)}{∂L_k (0)} - \frac {payoff(T,{\bf L(T)},ω^{(l)})}{N(T,{\bf L(T)},ω^{(l)})} \sum_{q=k}^M \frac {δ}{1+δ\hat L_q^{(l)}(T_q)}~\frac {∂\hat L_q^{(l)}(T_q)}{∂L_k(0)} \right) } \\ \end{align} \] \[ ~~~~ \tag{6.185}\]

かなり長い式になり解りにくいかもしれませんが、上の式で、\(\frac {d\hat L_M^{(l)}(T_M)}{dL_k(0)}~ と~ \frac {d\hat L_q^{(l)}(T_q)}{dL_k(0)}\) 以外の部分は、サンプル経路で生成された Libor の値から、簡単に計算できます。 後は、\(\frac {d\hat L_M^{(l)}(T_M)}{dL_k(0)}~ と~ \frac {d\hat L_q^{(l)}(T_q)}{dL_k(0)}\) を、サンプル経路ごとに求めれば、 6.182 式から PWD による感応度が計算できるはずです。 では次に、\(\frac {d\hat L_M^{(l)}(T_M)}{dL_k(0)}~ と~ \frac {d\hat L_q^{(l)}(T_q)}{dL_k(0)}\) を導出する方法を示します。 

 

目次

Page Top に戻る

// // //