Photo by Amber Kipp on Unsplash
株などで資産運用を行う際,どんな金融資産をどれくらいの比率で持つか?で迷ったことは無いでしょうか.今回はこの疑問に答えるために金融資産の組み合わせである,「ポートフォリオ」を最適化する理論を紹介します.さらにPart 2ではこの最適化問題を量子コンピュータで解く方法も紹介したいと思います.
金融工学におけるポートフォリオ
ポートフォリオとは金融資産の組み合わせです.金融資産とは例えば,株や債券など様々なものがあります.これらを組み合わせる,というのはメルカリ株を1000株と,個人向け国債を100万円分買って...というような感じです.
また,投資信託等ではポートフォリオ自体に投資することができます.投資信託では投資家から集めたお金を資産運用の専門家がかわりに運用するものですが,専門家(ファンドマネージャー)がこのポートフォリオに組み入れる金融資産の種類や割合を決めています.
金融資産は価格変動がそれぞれ異なるのでうまく組み合わせることで,期待収益率と価格変動リスクとを調整することができます.まず期待収益率と価格変動リスクを定義してみます.
ここでは株を考えることにします.ある時点tにおける株価がStとします.t=t0で株価はSt0であるときに,t1>t0における株の収益率Rは
R=St0St1−St0
と定義されます.対数収益率を用いることもありますが,今回は上の定義を用いることにします.t1−t0を1年とすれば年次収益率,1日とすれば日次収益率...という感じです.
さて,ここでは金融資産の価格変動が確率的であって,収益率は確率変数であり,確率分布に従って生成される,と仮定します.このようなモデルを行うことで,統計学のツールが利用可能になります.組入比率を決めると,ポートフォリオの収益率の確率分布が決定します.ただし,確率分布を直接扱うのは難しいので,期待値等の統計量を用いることにします.また,ここでは確率分布は時間に依存しないという(強い)仮定を起きます.
もちろん,実際は収益率は様々な要因に依存するため,このような静的な確率分布でモデル化するのは不十分です.そのため,機械学習を含め,様々な手法が用いられます.それ自体も重要な話題ではありますが,今回は割愛します.例えばファイナンス機械学習等に乗っています.
複数の資産を組み合わせてポートフォリオを作った場合,そのポートフォリオの収益率の期待値はどのようになるでしょうか?
2銘柄をω1,ω2づつ持っているとすると,期待値には線形性があるので,
E[ω1R1+ω2R2]=ω1μ1+ω2μ2
となります.ここでμi:=E[Ri]です.これを最大化するのがポートフォリオ最適化でしょうか?
このままだと収益率の期待値が最大の銘柄に全資産つっこむことになります.さらに,収益率の期待値が借り入れの金利より大きければ借りられるだけお金を借りて,その銘柄を買えばいいことになります.
実際には価格変動リスクを考慮する必要があります.基本的には収益率の期待値が大きいものは価格変動リスクも大きくなるので,上記の投資だとめちゃくちゃリスクを取ることになります.
では,この価格変動リスクをどう抑えるか?ですが,まず,価格変動リスクを定義する事から始めます.
金融工学においては価格変動リスクを測る指標はボラティリティと呼ばれ,収益率の標準偏差によって定義されます.
σi=Std[Ri]
複数の銘柄を組み合わせた場合のポートフォリオの価格変動リスクはどうなるでしょうか?まずは収益率の分散を考えてみると
Var[ω1R1+ω2R2]=ω12Var[R1]+ω22Var[R2]+2ω1ω2Cov[R1,R2]=ω12σ12+ω22σ22+2ω1ω2σ1,2
となります.ここでσi2:=Var[Ri],σi,j:=Cov[Ri,Rj]となります.ポートフォリオのボラティリティはこれの平方根をとったものになります.
ここで一般化して,N銘柄のポートフォリオの収益率の期待値μpと分散σp2は
μpσp2=i=1∑Nωiμi=i,j=1∑Nωiωjσi,j
となります.
収益率の期待値だけでなく,価格変動リスクに関する指標である,ボラティリティも得られました.
分散投資
ところで,分散投資を行うことで(価格変動)リスクが小さくなるという話を聞いたことはないでしょうか?上で紹介したモデルで,このことを検証してみます.
最も簡単には当比率ωi=1/Nで,分散が一定σi2=σ2で,共分散も一定σi,j=σcのポートフォリオが考えられます.このとき,
σp2=i=j∑N2σ2+i=j∑N2σc=Nσ2+(N−1)Nσc=Nσ2−σc+σc
ここで,σ2−σc>0であるので,Nが大きくなるとσp2が小さくなることがわかります.N→∞でσp2→σcとなります.
分散投資をすることで,価格変動リスクが抑えられることがわかりました.今は分散,共分散が一定のN銘柄に対し,当比率でポートフォリオを構成しましたが,これよりもっとリスクが小さそうな構成比率がありそうです.
ポートフォリオ最適化
ここでは次のようなポートフォリオ最適化問題を考えます.
収益率の期待値がμp∗という制約のもとで,ポートフォリオのボラティリティσpを最小化するような組入比率を求める
ボラティリティの最小化ですが,これは分散σp2の最小化と同じなので解くべき問題は
mins.t.∑i,j=1Nωiωjσi,j∑i=1NωiRi=μp∗∑i=1NωiSi=ξ
という等式の制約がついた二次計画問題で表されます.
最後の条件∑i=1NωiSi=ξは現在時点でのポートフォリオの価格が予算ξと等しい,という条件です.
今回は株を空売り可能であると仮定します.これはωiが負の値を取りうるということです.
さらに,実際には上式以外にも様々な指標に対する制約があるのですが,今回は簡単のためにこのモデルを検証することにします.(Part 2ではこの問題に対する量子アルゴリズムを考えるため,という理由もあります)
Lagrangeの未定乗数法
さて,等式制約付きの二次計画問題を解くわけですが,これはLagrangeの未定乗数法を用いることで解くことができます.
Lagrangeの未定乗数と呼ばれるパラメータη,θを導入して
L=i,j=1∑Nωiωjσi,j+ηi=1∑N(ωiRi−μp∗)+θi=1∑N(ωiSi−ξ)
という量を定義します.このLの各パラメータωi,η,θに対する停留点が解になっているというのがLagrangeの未定乗数法です.
実際
∂η∂L∂θ∂L∂ωi∂L=i=1∑NωiRi−μp∗=0=i=1∑NωiSi−ξ=0=2j=1∑Nσi,jωj+ηRi+θSi=0
となる.
N+2個のパラメータに対して,N+2本の線形方程式が与えられるので,この連立方程式を解いてやると最適な組入比率ωi∗が得られます.
この連立線形方程式を行列で書くと
⎝⎜⎛00R00SR⊤S⊤Σ⎠⎟⎞⎝⎜⎛ηθω⎠⎟⎞=⎝⎜⎛μp∗ξ0⎠⎟⎞
となります.ここでR=(R1,…,RN)⊤,S=(S1,…,SN)⊤であり,Σはσi,jを成分に持つ分散共分散行列です.
よってポートフォリオ最適化問題は逆行列計算を行えばいいということがわかります.逆行列計算はO(N3)かかるので銘柄数が多くなってくるとけっこう大変になってきます.
この逆行列計算はHHLと呼ばれる量子アルゴリズムによって高速化できます.(ただし,いくつか条件があります)
まとめ
本稿では金融工学におけるポートフォリオの理論を紹介し,分散投資によって価格変動リスクが低下することを見ました.
また,簡単なポートフォリオの最適化問題を二次計画問題として定式化し,線形連立方程式に帰着することを見ました.
Part 2ではHHLよってポートフォリオの最適化を行う手順を紹介したいと思います.また,最適化問題の設定によっては線形連立方程式に帰着しないため,内点法に基づいた量子アルゴリズムによって最適化問題を解く方法を紹介します.