上級編 8 クレジットデリバティブズ
8.3 Gaussian Latent Variable Model (1 factor Gaussian Copula Model)
8.3.4 CDOトランチの価格評価アルゴリズム
8.3.4.8 Recursion法の高速化テクニック
8.3.4.8.1 銘柄ごとの分岐確率 \(Q_i(T)~ と ~1-Q_i(T)\) を、ポートフォリオ平均で近似する方法
ここまで、ポートフォリオの損失率の確率分布を計算するアルゴリズムを紹介してきましたが、計算負荷が最も大きいのが Recursion 法を使った条件付き同時確率分布を求めるステップでした(Section 8.3.4.3で示したアルゴリズム)。そこでは2項ツリーを使って、計算量を大幅に減らしていたものの、それでも銘柄数が N 個の場合、\(N^2\) のオーダーで計算量がかかります。さらに、それを市場ファクター M の確率密度関数で数値積分する為、積分の分割数だけ行う必要がありました。分割数を 32 とすると \(32×N^2\) のオーダーの計算量になり、かなりの時間がかかります。それからさらに、同じ計算を、時間軸を離散化した数だけ繰り返す事になります。
そこで、計算負荷を大幅に軽減する方法が Dominic O‘Kane の本で紹介されています。Section 8.3.4.3 で使った Recursion 法のアルゴリズムは、2項ツリーを使うものでした。2項分布と言わずに、あえて2項ツリーという単語を使ったのは、実際に、銘柄によって異なるデフォールト確率とサバイバル確率で二項分岐させた場合、言い換えると、ステップごとに異なる分岐確率で分岐させた場合、最終ノードでの確率分布は二項分布にはならないからです。しかし、分岐確率を、すべての銘柄で同じ値(例えば単純平均値)を使えば、最終ノードでの確率分布は二項分布になります。二項分布であれば、途中のステップでの計算は必要なく、最終ノードでの確率計算だけで済みます。なので計算のオーダーは \(N^2~から~N\) になり、約1/Nになります。この場合、Recursion 法で得られる確率分布とは分散が一致しませんが、ある程度精度の高い近似値が導出できます。その方法を簡単に説明します。
(注: Vasicekのポートフォリオモデルは、まさにこの方法を使っています)
まず、ポートフォリオの構成銘柄のデフォールト確率の平均(\(P_{avg}(T)\) と表記)を、下記式で求めます。
\[ P_{avg}(T)=\frac 1 N \sum_{i=1}^N P_i(T)= \frac 1 N \sum_{i=1}^N (1-Q_i(T)) \]ここでポートフォリオの各銘柄のサバイバル確率の平均を \(Q_{avg}(T)\)、デフォールト確率の平均を \(P_{avg}(T)=1-Q_{avg}(T)\) と置くと、この平均値を使った2二項分布の、最終ノードでの確率分布は下記式で求まります。
\[ \begin{align} Probability~& of~ k defaults \\ & =\left(\begin{array}{c} N \\ k \end{array}\right) P_{avg}(T)^k Q_{avg} (T)^{N-k} \\ & =\left( \begin{array}{c} N \\ k \end{array} \right)(1-Q_{avg}(T))^k Q_{avg}(T)^{N-k}. ~~~ k=0,1,…,N \\ & 但し ~~~\left( \begin{array}{c} N \\ k \end{array} \right)=\frac{N!}{(N-k)!k!} \tag{8.26} \end{align} \]Recursion 法で説明した通り、市場ファクターを M=m とした条件付き確率は、おのおの独立であり、上式のように \(P_{avg}~と~Q_{avg}\) を発生回数だけ掛け合わせるだけで同時分布確率が求まります。それが N から k を選択する組み合わせの数だけあるので \(\left( \begin{array}{c} N \\ k \end{array} \right) \)倍するだけです。お気づきの方もおられると思いますが、上の式は Vasicek のポートフォリオ損失モデルで、Large Homogeneous Portfolio の損失分布を計算した際に、既に出てきた式(8.11式)になります。これでも、ある程度精度の高い、同時確率密度の近似値が得られます。
この場合、近似された2項分布によるデフォールト数の期待値は、実際の Recursion 法を使った場合の期待値と同じになります。しかし、その分散は違ってきます。そうすると、銘柄ごとのデフォールト確率のばらつきが大きくなると、2項分布の近似の精度も落ちてきます。Dominic O‘Kane の本では、2項分布の分散も一致させ、近似の精度を向上させるテクニックが紹介されていますので、以下にそれを解説します。
8.3.4.8.2 デフォールト数の期待値のみならず、その分散も一致させる方法
O‘Kane のアイデアは、デフォールト確率の平均値を使って構築した2項分布において、分散値も Recursion 法を使った場合と同じになるように、確率分布に無理やり微調整を加えるものです。
まず、2項分布の最終ノードでのデフォールト確率の平均(ここでは \(P_{avg}(T)= 1-Q_{avg}(T)\) と表記します)は、下記式で求まります。
\[ P_{avg}(T)= 1-Q_{avg}(T)=\frac 1 N \sum_{i=1}^N (1-Q_i(T)) \tag{8.27} \]この確率を使って、デフォールト数の2項分布のツリーを構築した場合、最終ノードでのデフォールト数の平均(これを m と置きます)と、分散(これを v と置きます)は下記式で得られます。
\[ \begin{align} m & = N×P_{avg}(T)=N×(1-Q_{avg}(T)), \\ v & = N×P_{avg}(T) Q_{avg}(T) = N×(1-Q_{avg}(T)) Q_{avg} (T) \tag{8.28} \end{align} \](注:2項分布の平均と分散の公式を使っています)
一方、Section 8.3.4.3 で示した Recursion 法を使った場合の、デフォールト数の分散(これを Var と置きます)は下記式で求まります。(注:Section 8.3.4.3 ではデフォールト損失率 の2項ツリーを構築しましたが、各ノードをデフォールト数と読み替えれば、デフォールト数の2項ツリーになります)
\[ Var=\sum_{i=1}^N P_i(T)Q_i (T)= \sum_{i=1}^N (1-Q_i(T))Q_i(T) \tag{8.29} \]Jensen の不等式から \(v ≥ Var\) となるので、デフォールト確率の平均値で構築した2項分布の分散は、どうしても Recursion 法で構築した2項ツリーの分散よりも僅かながら大きくなります。
そこで O‘Kane は、2項分布の確率分布において、平均のみならず分散も Recursion 法に一致するような計算方法を提示しました。すなわち、デフォールト確率の平均値で構築した二項分布の最終ノードでにおいて、一旦すべてのノードの確率量を若干減らします。そして、その減らした確率量を、平均回りのノード(平均の1つ上のノードと、ひとつ下のノード)に割り振ってその確率量を増やします。平均に近いノードでの確率量が増えたので、2項分布の分散は修正前よりも、若干低下します。そして、その減らした分散値が、Recursion法での分散値と一致するような調整法を紹介しています。その手順をまとめると
- まず、2項分布で得られた各ノードの確率密度をすべて一定割合で少し減らします。その一定割合を、\(α\) とし(\(α\) は 1 よりほんの僅か小さい値になります)、2項分布で得られる同時確率密度(ここではそれを \(p_k\) とします)にそれを掛けます。 \[ p_k×α,~~k=0,1,…,N,~~~~ 但し~~p_k=\left(\begin{array}{c} N \\ k \end{array}\right) Q^{N-k}(1-Q)^k \tag{8.30} \]
- すると、すべての同時確率密度を合計すると \(α\) になり、それは 1 を少し下回った値になります。そこで、この確率密度の合計が 1 になるように、不足分 \(1-α\) を、分布の平均 m に一番近いノードの確率密度に加えます。m を挟む2つの近接するノードを、\(l~と~l+1\) とすると、それぞれのノードへの到達確率に、それぞれ \(ϵ_l,~ϵ_{l+1}\) を加えます。すなわち \[ \begin{align} & p_l^{adjust} =α p_l+ϵ_l, \\ & p_{l+1}^{adjust} =α p_{l+1}+ ϵ_{l+1}, \\ & ~但し ϵ_l+ϵ_{l+1}=1-α \tag{8.31} \end{align} \]
- ここから、未知数 \(α,~ϵ_l,~ϵ_{l+1}\) の値を求める為に、3元の連立方程式を立てます。それぞれの式は以下の条件から導かれます。
・ 8.31 式の条件である \(ϵ_l+ϵ_{l+1}=1-α\)
・ \(α,~ϵ_l,~ϵ_{l+1}\) を使って修正した2項分布の確率密度から得られるデフォールト数の平均が、本来の平均 m と一致する
・ \(α,~ϵ_l,~ϵ_{l+1}\) を使って修正した2項分布の確率密度から得られるデフォールト数の分散が、本来の分散 Var と一致する
\[ \begin{eqnarray} \begin{cases} ϵ_l+ϵ_{l+1}=1-α & ~ \\ m=α ~ m+ϵ_l~l+ϵ_{l+1}~(l+1) & ~ \\ Var=α ~ v+(l-m)^2 ~ ϵ_l+(l+1-m)^2 ~ ϵ_{l+1} & ~ \end{cases} \end{eqnarray} \tag{8.32} \] - この3元の連立方程式を解けば、\(α,~ϵ_l,~ϵ_{l+1}\) が求まり、これらの値を使って2項分布で得られた各ノードの確率密度を調整します。実際に連立方程式を解いた結果は、次のような値になります。 \[ \begin{align} & α=\frac{Var-(l+1-m)^2-\left[(l-m)^2-(l+1-m)^2 \right](l+1-m)}{v-(l+1-m)^2-[(l-m)^2-(l+1-m)^2 ](l+1-m) } \\ & ϵ_l=(1-α)(l+1-m) \\ & ϵ_{l+1}=1-α-ϵ_l \tag{8.33} \end{align} \]
O’Kane は、修正した2項確率分布を使って、CDO トランチの価格評価を行い、それを Recursion 法の計算結果と比較しています。(注:実際のトランチではなく、Attachment Pointはすべて 0 にし、Detachment points のみトランチ分けしたものを評価しています。このトランチ分けは、後で Base Correlation を計算する際に使われるものです) 価格の誤差率は、概ね 0.01% のオーダーで、かなり精度の高い近似計算である事が分かります。なおかつ、条件付き同時確率分布関数の導出が、2項分布を使って求まるので、計算量が大幅に削減になります(約 1/N になる)。