基礎編 2. 金利の期間構造

2.6 イールドカーブの構築方法(2)

2.6.5 Bootstrapping + Interpolation法のアルゴリズム

データソースとPillarからPar Curveが構成できますが、ここから各Pillarに対応するDiscount Factorを求めます。そのアルゴリズムについては、すでにセクション2.4で、簡単に説明しました。ここでは、それをもう少し発展させます。 

まず、金融商品の価格式からスタートします。すべての金融商品の価格は、次の式で表現できます。 

\[  金融商品の価格 =\sum CashFlow_i (T_i) \times Probability(CashFlow_i) \times DiscountFactor(r(T_i)) \]

ここで記法(Notation)を少し変えます。 

  • \(PV_n\): データソースとして選択された n 番目の商品の現在価値
  • \(T_i\) : i 番目のPillar \(i=0, 1, …, m\ \ \ T_0\)は本日、\(T_m\) はイールドカーブの最遠点
  • \(CF_n(T_i)\) : n 番目の商品の\(T_i\) 時のキャッシュフロー
  • \(DF(T_i)\) : \(T_i\) 時のDiscount Factor あるいは\(T_i\) 時が満期のゼロクーポン債価格
  • \(r(T_i)\) : \(T_i\) 時が満期のゼロクーポン債利回り(連続複利)

この記法を使って、先ほどの式を少し書き換えます。データソースはRisk Free Rateという建前なので、\(Probability(CashFlow_i)=1\) として、式から除きます。また右辺をすべて左辺に移項し、右辺を 0 にします。 

\[ PV_n-\left[ \sum_{i=all CFs} CF_n(T_i)\times DF(T_i) \right]=0 \]

これを、データソースとなる商品の数だけ連立させ、連立方程式にします。後で、行列演算の形にするため、左辺の[ ]内を展開して表示します。 

\[ \left\{ \begin{array}{l} PV_1 - CF_1(T_1)×DF(T_1)\ &=& 0 \\ PV_2 - CF_2(T_1)×DF(T_1)- CF_2(T_2)\times DF(T_2)\ &=& 0 \\ PV_3 - CF_3(T_1)×DF(T_1)- CF3(T_2)×DF(T_2)- CF_3(T_3)×DF(T_3)\ &=& 0 \\ ...\\ PV_n - CF_n(T_1)×DF(T_1)- CF_n(T_2)×DF(T_2)- CF_n(T_3)×DF(T_3) ... -CF_n(T_m)×DF(T_m)\ &=& 0 \end{array} \right. \]

各商品の価格 \(PV_i, i=1,2,…,n\) は市場データから取得します。但し、LIBOR金利や金利スワップなどの商品をデータソースとして選択するので、それらはすべて Par=100% になります。また、各商品のキャッシュフロー額 \( CF_k(T_i) \) は、市場レートを基に、契約や規則、取引慣行で外生的に決まります。結局 各Pillarに対応する Discount Factorすなわち \(DF(T_i),\  i=1,2,…,m \) が未知数として残ります。 

これを、行列の形式で連立方程式を表示すると次の様になります。DFの縦ベクトルが方程式の未知数です。 

\[ \left( \begin{array}{cccccc} PV_1 & -CF_1(T_1) & 0 & 0 & \ldots & 0 \\ PV_2 & -CF_2(T_1) & -CF_2(T_2) & 0 & \ldots & 0 \\ PV_3 & -CF_3(T_1) & -CF_3(T_2) & -CF_3(T_3) & \ldots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ PV_n & -CF_n(T_1) & -CF_n(T_2) & -CF_n(T_3) & \ldots & \ldots & CF_n(T_m) \\ \end{array} \right) \left( \begin{array}{c} 1 \\ DF(T_1)\\ DF(T_2)\\ \vdots \\ DF(T_n)\\ \end{array} \right) = \left( \begin{array}{c} 0\\ 0\\ 0\\ \vdots \\ 0\\ \end{array} \right) \]

\(n=m\) なら解は求まりそうです。期間40年のスワップ金利まで使うと、連立する式の数は、50~100近くなりますが、特に連立方程式を解く行列演算のテクニックを使う必要はありません。単に、期間の短いPillarから順番に \( DF(T_1)、DF(T_2)\)、と求めていけば、逐次的に解が求まります。いわゆるBootstrappingのアルゴリズムです。 

残念ながら、通常は n<m であり、このままでは解は求まりません。市場データとして使う商品の数 (n) は、大体15~25、それに対し、キャッシュフローの数 (m) は50~100になります。 

そこで、Interpolationを使います。例えば、15年の金利スワップと20年の金利スワップの間で、市場データが存在しない場合、その間の\(DF(T_i) \)について、何等かのInterpolationの方法を使って推定値を出します。推定値なので、右辺が必ずしも 0 になりませんが、それが 0 になるように推定値を微調整し再計算します。 上記の連立方程式の左辺をすべて合計し、それが右辺の合計値(=0)と許容誤差以内になるまで再計算を繰り返します。その時の \(DF(T_i)\) の配列が、解になります。  

各PillarのDiscount Factorが求まれば、そのPillarでのZero Coupon Rateも下記式で簡単に求まります。 

\[ r(T_i)=-\frac{\ln DF(T_i)}{T_i} \]

また各Pillar間のForward Rateも下記式で求まります。 

\[ F(T_i,T_j)=-\frac{\ln DF(T_j)-\ln⁡DF(T_i)}{T_j-T_i} \]

  但し、\(F(T_i,T_j)\) は、\(T_i\) スタート\(T_j\) エンドのフォワード金利(連続複利)  

以上が、Bootstrapping + Interpolation法によるイールドカーブ構築のアルゴリズムです。

次に、例を使って、このアルゴリズムから金利の具体的に金利のTerm Structureを導出していきます。 

 

目次

Page Top に戻る

// // //