Critical-Line Algorithm for Portfolio Optimization:フレームワーク

CLAはポートフォリオの重み$${{\bf \omega}}$$に上限と下限の制約をつけた、最少分散ポートフォリオと最大シャープレシオポートフォリオ、効率フロンティア曲線を効率的に計算するアルゴリズムである。
 重みの領域に制約のない場合の最少分散ポートフォリオと最大シャープレシオポートフォリオは、ラグラジアン未定乗数法で計算できることは既に示した。

一方で、現実的には、資産の運用予算には限りがあり、無限に買い込んだり空売りをしたりはできない。よって、ポートフォリオの投資割合である重みに上限と下限の制約を入れた場合の最少分散ポートフォリオや効率フロンティア、最大シャープレシオポートフォリオを制約がある状況で得られるアルゴリズムは重要なツールである。
 scipyに実装されている最適化にも、制約制約のある最適化を行うBroyden-Fletcher-Goldfarb-Shanno法(BFGS)、Truncated-Newton法(TNC)、Constrained Optimization by Linear Approximation法(COBYLA)、Sequential Least Squares Programming法(SLSQP)、Non-Negative Least Squares solver(NNLS)の5つの制約つき最適化アルゴリズムが含まれている。
 このうち、勾配法がBFGSとTNCで、COBYLAは二次問題で効率が非常に悪く制約外の解を導くことがある。また、SLSQPは初期に与えた解の近くの局所的最適解から抜け出せない可能性がある。NNLSは不等式の制約に対応していない。
 CLAは不等式制約を含むポートフォリオ最適化のために考えられ、特定の反復回数で正解の最適解が見つけることを保証するアルゴリズムである。
 
投資の重みに不等式制約を持つ資産数Nの投資ユニバースを考える。

  • 平均リターン$${{\bf \mu},(\mu_1, \dots, \mu_N)^T}$$

  • リターンの分散行列$${{\bf V}, V_{ij}=\sigma_{ij}}$$

  • 重み$${{\bf \omega},(\omega_1, \dots,\omega_N)^T}$$

  • 重みの下限$${{\bf l},(l_1, \dots,l_N)^T}$$

  • 重みの上限$${{\bf u},(u_1, \dots,u_N)^T}$$

  • $${l_i < \omega_i < u_i }$$が成り立つ資産の集合$${{\bf F}\subset N}$$

  • $${\omega=l_i \ or \ u_i }$$の資産の集合$${{\bf B}\subset N}$$ ここで、$${{\bf F} \cup {\bf B}=N}$$

$${{\bf F,B}}$$を用いて分散行列、平均リターン、重みを以下のようにかく。
$${\displaystyle{ {\bf V}=\begin{pmatrix} {\bf V_F} & {\bf V_{FB}} \\ {\bf V_{BF}} & {\bf V_B} \\ \end{pmatrix} }}$$, $${\displaystyle{ {\bf \mu}=\begin{pmatrix} {\bf \mu_F} \\ {\bf \mu_B} \\ \end{pmatrix} }}$$, $${\displaystyle{ {\bf \omega}=\begin{pmatrix} {\bf \omega_F} \\ {\bf \omega_B} \\ \end{pmatrix} }}$$
$${{\bf F}}$$に入っている資産の個数を$${k}$$とすれば、
$${{\bf V_F}}$$は$${k \times k}$$、$${{\bf V_B}}$$は$${n-k \times n-k}$$、$${{\bf V_{BF}}^T={\bf V_{FB}}}$$は$${k \times n-k}$$の行列となる。
 不等式のために、ラグランジュ未定乗数法ではなくKarush-Kuhn-Tucker条件と$${{\bf F}}$$と$${{\bf B}}$$に資産の入れ替えが起こる点を転換点との概念を用い、資産ユニバースNを$${{\bf F}}$$と$${{\bf B}}$$に分割して扱う。よって、ラグランジュは以下のようになる。
$${{\bf L} = \frac{1}{2} {\bf \omega_F}^T{\bf V_F \omega_F} + \frac{1}{2} {\bf \omega_F}^T {\bf V_{FB} \omega_B }+ \frac{1}{2}{\bf \omega_B}^T {\bf V_{BF} \omega_F} + \frac{1}{2} {\bf \omega_B}^T {\bf V_B \omega_B }- \gamma ({\bf \omega_F}^T {\bf 1_F} + {\bf \omega_B}^T {\bf 1_B} - 1) - \lambda ({\bf \omega_F}^T {\bf \mu_F + \omega_B}^T{\bf \mu_B} - \mu_p)}$$
 転換点の間では、$${{\bf B}}$$の資産の重みは$${\omega_{B_i}=l_{B_i} \ or\ u_{B_i}}$$に固定されるので、$${{\bf F}}$$内だけの資産で、制約無しと同じ方法で決められる。
 効率フロンティアは、隣接する転換点間の凸結合として与えられる。
 ラグランジュを$${{\bf \omega_F}}$$で偏微分すると、
$${\displaystyle{\frac{\partial{\bf L}}{\partial {{\bf \omega_F}}} ={\bf V_F \omega_F} + {\bf V_{FB}\omega_B - \lambda \mu_F} - \gamma {\bf 1_F} = {\bf 0}}}$$
これから、
$${{\bf V_F \omega_F} + {\bf V_{FB}\omega_B} - \lambda {\bf \mu_F} =\gamma {\bf 1_F}}$$
左から$${{\bf V_F}^{-1}}$$をかけて、
$${{\bf \omega_F} + {\bf V_F} ^{-1} {\bf V_{FB}\omega_B } - \lambda{\bf V_F}^{-1} {\bf \mu_F} =\gamma {\bf V_F}^{-1}{\bf 1_F}}$$
また、$${{\bf \omega}^T{\bf 1}=1}$$より、$${{\bf \omega_F}^T{\bf 1_F}= 1-{\bf \omega_B}^T{\bf 1_B}}$$。
 上記の式に右から$${{\bf 1_F}^T}$$をかけて、$${{\bf w_F}}$$を消去し、$${\gamma}$$を$${\lambda}$$の関数として表すと以下の式になる。
$${\gamma=\displaystyle{-\lambda \frac{{\bf 1_F}^T{\bf V_F}^{-1}{\bf \mu_F}}{{\bf 1_F}^T{\bf V_F}^{-1}{\bf 1_F}} + \frac{1-{\bf 1_B}^T{\omega_B} + {\bf 1_F}^T{\bf V_F}^{-1}{\bf V_B \omega_B}}{{\bf 1_F}^T{\bf V_F}^{-1}{\bf 1_F}}}}$$
 ここで、$${\lambda}$$は外因的に与えられ、最終的な最少分散ポートフォリオの期待リターンを決定する係数である。固定値の$${\mu_P}$$を使って$${\lambda}$$を扱うのと、ラグラジアンの$${\lambda}$$を設定して$${\mu_P}$$を最終的に指定されるのは、結局は同じである。
 $${\mu_P={\bf \mu}^T{\omega}}$$から、
$${{\bf \mu}^T{\omega}={\bf \mu_F}^T{\omega_F}+{\bf \mu_B}^T{\omega_B} = {\bf \mu_F}^T(\gamma {\bf V_F}^{-1}{\bf 1_F} }$$ $${- {\bf V_F} ^{-1} {\bf V_{FB}\omega_B} + \lambda {\bf V_F}^{-1}{\bf \mu_F})+{\bf \mu_B}^T{\omega_B} }$$
 これを$${\lambda}$$で偏微分すると、
$${\displaystyle{ \frac{\partial ({\bf \mu}^T{\bf \omega})}{\partial \lambda} = {\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} + \frac{\partial \gamma}{\partial \lambda}{\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} }}$$
$${\displaystyle{ = {\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} - \frac{({\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F})({\bf 1_F}^T{\bf V_F}^{-1}{\bf \mu_F})}{{\bf 1}^T{\bf V_F}^{-1}{\bf 1_F}} }}$$
 元々の$${{\bf V}}$$は分散行列で正定値(positive definite)で、$${{\bf V_F}}$$も正定値で、$${{\bf V_F}^{-1}}$$もまた正定値であることから、任意の実数ベクトルを$${{\bf x}={\bf 1_F}-\alpha {\bf \mu_F}, \ \alpha\in \mathbb{R}}$$と与えると、$${{\bf x}^T{\bf V_F}^{-1}{\bf x}}$$は常に正である。
 これから、
$${{\bf x}^T{\bf V_F}^{-1}{\bf x}=({\bf 1_F}-\alpha {\bf \mu_F})^{T}{\bf V_F}^{-1}({\bf 1_F}-\alpha {\bf \mu_F})}$$
$${={\bf 1}^T{\bf V_F}^{-1}{\bf 1_F} - 2\alpha{\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} + \alpha^2 {\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} }$$
この$${\alpha}$$についての二次関数が実数解を持たない条件から、
$${({\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} )^2 - ({\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F})({\bf 1}^T{\bf V_F}^{-1}{\bf 1_F} ) \leq 0}$$
よって、
$${\displaystyle{ \frac{\partial ({\bf \mu}^T{\bf \omega})}{\partial \lambda} = {\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F} - \frac{({\bf \mu_F}^T{\bf V_F}^{-1}{\bf \mu_F})({\bf 1_F}^T{\bf V_F}^{-1}{\bf \mu_F})}{{\bf 1}^T{\bf V_F}^{-1}{\bf 1_F}} \geq 0 }}$$

よって、より高い$${\lambda}$$を指定すれば、期待リターンがより高い制約付きの最少分散ポートフォリオを導ける。
 これから2点の転換点の間では、$${{\bf \mu}^T{\bf \omega}}$$と$${\lambda}$$は線形関係にあり、その係数は正である。

この記事が気に入ったらサポートをしてみませんか?