Shuanghua Bai & Charlotte Silvester (Numerical Algorithms Group)
SOCPとは
二次錐計画法(SOCP)は、線形計画法(LP)を二次錐(ローレンツ錐またはアイスクリーム錐)で拡張した凸最適化手法です。工学、制御理論、定量的金融から二次計画法や堅牢最適化まで、幅広い応用分野に登場します。その強力な性質から、金融最適化のための重要なツールとなっています。
内点法(IPM)は、その理論的な多項式複雑性と実用的なパフォーマンスにより、SOCP問題を解くための最も一般的なアプローチです。nAG SOCPソルバー(e04pt)は、IPMを使用して標準形の問題を解きます:
\[ \begin{aligned} \text{minimize} & \quad c^T x \\ x \in \mathbb{R}^n & \\ \text{subject to} & \quad l_A \leq Ax \leq u_A, \\ & \quad l_x \leq x \leq u_x, \\ & \quad x \in \mathcal{K}, \end{aligned} \]
ここで、\(A \in \mathbb{R}^{m\times n}, l_A, u_A \in \mathbb{R}^m, c, l_x, u_x \in \mathbb{R}^n\) は問題データであり、\(\mathcal{K} = \mathcal{K}^{n_1} \times \cdots \times \mathcal{K}^{n_k} \times \mathbb{R}^{n_l}\) です。\(\mathcal{K}^{n_i}\) は次のように定義される二次錐です:
\[ \mathcal{K}_q^n := \left\{ x = (x_1, \ldots, x_n) \in \mathbb{R}^n : x_1^2 \geq \sum_{j=2}^n x_j^2, x_1 \geq 0 \right\} \]
![3変数のSOCP問題の実行可能領域 3変数のSOCP問題の実行可能領域](img/feasible-region-socp.png)
SOCPの多様性とSOCP表現可能な問題
SOCPは、その柔軟性と多様性により、確率的および堅牢なポートフォリオ最適化など、さまざまな種類の制約を持つ多様な問題を扱うことができるため、定量的金融で広く使用されています。以下は、SOCPに変換できる問題と制約のリストです。定量的金融の専門家は、これらの要素を使用して、線形計画法や二次計画法よりも複雑で現実的なモデルを構築することができます。
凸二次制約:
\[\frac{1}{2}x^T P x + q^T x + r \leq 0.\]
p-ノルム制約:
\[\|x\|_p = \left(\sum_{i=1}^n |x_i|^p\right)^{1/p} \leq t,\]
ここで \(p \geq 1\)、例えば、絶対値 \(|x| \leq t\)、\(l_1\)-ノルム \(\|x\|_1 \leq t\)、ユークリッドノルム \(\|x\|_2 \leq t\)。
ノルムの和の最小化: \(\min \sum_{i=1}^n \|x_i\|_2\)
ノルムの最大値の最小化: \(\min \max_{1≤i≤r} \|x_i\|_2\)
確率制約:
\[\text{Prob}(a^T x \leq b) \geq \eta,\]
ここで \(a\) は独立なガウス分布のランダムベクトルで、\(\eta \geq 0.5\)。
べき関数を含む制約、例えば:
\[x_1^{1/5}x_2^{2/5}x_3^{6/5} \geq 1 \text{ and } -x_1^{1/5}x_2^{2/5}x_3^{1/5} \leq x_4, x_i \geq 0.\]
二次/線形分数問題:
\[ \begin{aligned} \text{minimize} & \quad \sum_{i=1}^p \frac{\|F_i x+d_i\|^2}{a_i^T x+b_i}, \\ \text{subject to} & \quad a_i^T x + b_i > 0, i = 1,\ldots,p. \end{aligned} \]
ポートフォリオ最適化におけるSOCPの具体的応用
先に述べたSOCPの一般的な応用可能性を踏まえ、ここではポートフォリオ最適化に特化したSOCPの具体的な活用例を紹介します。これらの例は、金融実務者が直面する典型的な最適化問題と制約を示しており、SOCPがどのように複雑な投資戦略の実装を可能にするかを illustrate しています:
シャープレシオの最大化: リスク調整後リターンを最適化する基本的な目標
\[ \max \frac{\mu^T x}{\sqrt{x^T \Sigma x}} \]
保有制約と予算制約: 実際の投資環境で頻繁に遭遇する現実的な制約
\[ 0 \leq x \leq u, \quad e^T x = b, \]
ここで \(e\) は全ての要素が1のベクトルです。
トラッキングエラー制約: ベンチマークに対する乖離を管理するための重要な制約
\[ \frac{1}{2} x^T P x + q^T x + r \leq 0. \]
最大ポジション制約: リスク管理や規制遵守のための個別銘柄の保有上限
\[ \max |x| \leq m. \]
レバレッジ制約: ポートフォリオ全体のリスク水準を管理するための制約
\[ \|x\|_1 \leq L. \]
市場インパクトコスト: 大口取引による市場への影響を考慮したコスト関数
\[ w^T |x - x_0|^q \leq u_M. \]
これらの制約や目的関数は、単独でも組み合わせても使用可能で、投資家のニーズや市場環境に応じて柔軟にモデルを構築することができます。SOCPの強みは、これらの複雑な要素を単一の最適化問題として効率的に解決できる点にあります。
nAG SOCPソルバーのパフォーマンス
nAG SOCPソルバーのパフォーマンスを評価するため、2つの異なる比較を行いました。
1. DIMACS Challenge問題での比較(2019年データ)
18個のDIMACS Challenge問題について、nAGのソルブ時間を有名なソルバーであるSEDUMIとSDPT3と比較しました(デフォルトオプション、精度10⁻⁸、シングルスレッドモード)。
nAG | SEDUMI | SDPT3 | |
---|---|---|---|
解決した問題 | 100% | 77.78% | 83.33% |
表1:ソルバーの実行後のステータスに関する統計、成功した解決試行の割合。
問題クラス | 問題数 | 平均 n | 平均 m | 平均 nc |
---|---|---|---|---|
nb | 4 | 3098.75 | 321 | 906 |
nql | 3 | 86102 | 49440 | 12300 |
qssp | 3 | 99486 | 49471 | 24871 |
sched | 8 | 17712.5 | 8448.5 | 1.5 |
表2:DIMACS問題の統計。4クラスの18テスト問題。(n:変数の数、m:線形制約の数、nc:二次錐制約の数)
![<i>n</i>AG、SDPT3、SEDUMIの12個のDIMACS問題に対する解決時間を比較したバーチャート <i>n</i>AG、SDPT3、SEDUMIの12個のDIMACS問題の解決時間](img/compare3solvers.png)
nAG SOCPソルバーは、DIMACSの問題データセットにおける全てのテストケースで、効率性と精度の両面でSEDUMIとSDPT3の両方を上回りました。
2. ポートフォリオ最適化問題での比較(2024年データ)
CVXPYから呼び出されたnAG SOCPソルバーの解決時間を、CVXPYのデフォルトソルバーと比較しました。10個のクラシックなポートフォリオ最適化問題(1100から2900の資産)を使用し、ランダムに生成されたデータをマーコビッツモデルに適用しました。このモデルの目的関数は大規模な共分散行列を含み、ロングオンリー制約と予算制約が課されています(デフォルトオプション、精度10⁻⁸、シングルスレッドモード)。
結果: - 小規模な問題では、nAGソルバーは標準のCVXPYの少なくとも3倍高速です。 - 大規模な問題では、nAGソルバーは標準のCVXPYの最大6倍高速になります。 - nAGソルバーは、高い精度を維持しながら上記のパフォーマンスを達成しています。
![異なる資産数に対する<i>n</i>AG+CVXPYとCVXPYの解決時間比較 異なる資産数の<i>n</i>AG+CVXPYとCVXPYの解決時間](img/qp_cvxpy_nag_vs_cvxpyecos.png)
ケーススタディ:トラッキングエラー制約付きポートフォリオ最適化
以下のモデルは、トラッキングエラーボラティリティ(TEV)の制約下での、アクティブポートフォリオのリスクとリターンの関係を探ります。
rを期待リターンのベクトル、Vを資産リターンの共分散行列(2018年3月から2019年3月までのDJIAの30銘柄の日次データから推定)とします。ベンチマークポートフォリオbをランダムに生成し、以下の最適化問題を解きます:
\[ \begin{aligned} \text{minimize} & \quad -r^T x + \mu(b + x)^T V(b + x) \\ \text{subject to} & \quad e^T x = 0, \\ & \quad x_i \geq -b_i, \\ & \quad x^T V x \leq tev, \end{aligned} \]
ここで、eは全ての要素が1のベクトル、μは超過リターンと絶対リスクのトレードオフを制御し、tevはTEVの閾値です。
注意:絶対リスクを目的関数に含めない場合、問題は超過リターン最適化に縮小します。しかし、Roll(1992)は、このクラシックなモデルが、アクティブポートフォリオがベンチマークよりも体系的に高いリスクを持ち、最適ではないという好ましくない結果をもたらすことを指摘しました。したがって、絶対リスクを考慮することで、QCQP(二次制約付き二次計画法)モデル(SOCPによって解かれる)はアクティブポートフォリオのパフォーマンスを改善します。
nAGライブラリのSOCPソルバーを使用して上記のモデルを解きました。図の各効率的フロンティアは、2000個のSOCPを解くことで生成されました。全プロセスは約1分(解決1回あたり0.02秒未満)で完了しました。
![TEV制約付きの効率的フロンティア トラッキングエラーボラティリティ制約付き効率的フロンティア](img/efficientFrontierTEV.png)
実務的な影響
nAG SOCPソルバーの高速な解決時間は、ポートフォリオ最適化に具体的な利点をもたらします:
大規模問題の効率的な処理: 実務家が大規模な共分散行列、ロングオンリー制約、予算制約を含む古典的な最適化問題を扱う際に、この強化されたソルバーが特に有用です。
迅速な意思決定: 高速な計算能力により、市場の変化に対してより迅速に対応することが可能になります。
モデルの複雑化への対応: より複雑な制約や目的関数を含むモデルを、実用的な時間内で解くことができます。
シナリオ分析の拡張: 多数のシナリオを短時間で分析することが可能になり、より robust な戦略立案ができます。
リアルタイムリバランシング: 市場条件の変化に応じて、ポートフォリオを頻繁にリバランスすることが可能になります。
コスト効率の向上: 計算時間の短縮は、計算リソースの効率的な利用につながり、運用コストの削減に寄与します。
これらの利点により、ポートフォリオマネージャーは市場条件の変化により迅速に適応し、より優れたパフォーマンスと戦略的優位性を獲得することができます。
結論
nAG SOCPソルバーは、学術的なベンチマーク問題と実際の金融問題の両方で優れたパフォーマンスを示しています。2019年から2024年にかけての継続的な改善により、ソルバーの効率性と堅牢性が向上しています。
特に金融モデリングにおいて、nAG SOCPソルバーは高速性、精度、柔軟性、堅牢性の点で有用です。これらの特性により、複雑な制約を持つポートフォリオ最適化問題を迅速かつ正確に解決することができます。
nAG SOCPソルバーは Python、C/C++、.NET & C#、Java、Fortran、Excel/VB など、幅広いプログラミング言語とプラットフォームで利用可能です。
結論として、nAG SOCPソルバーは、ポートフォリオ最適化の効率性を高め、金融実務の質の向上に貢献する信頼性の高いツールです。