趙 磊,朱道立
(上海交通大學a.船舶海洋與建筑工程學院;b.安泰經濟與管理學院;c.中美物流研究院,上海 200030)
投資組合指的是投資人或金融機構(投資銀行、基金公司等)持有的股票、債券、金融衍生產品等組成的集合。投資人進行投資組合決策的主要目的是分散投資風險,在風險可控的前題下最大化投資收益。因此,在股票、債券等風險資產的投資中如何平衡收益和風險這兩項指標進行資產分配是市場投資者迫切需要解決的問題,由此形成了投資組合理論和最優投資組合選擇問題。
投資組合理論最早被Markowitz[1-2]提出。在這一理論中所求的投資組合方案由向量x表示,各項風險資產的投資回報率由向量ξ表示,理論假設向量ξ服從某一概率分布ω,同時這一概率分布的任意實現屬于不確定集合

其中:Q∈Rn×n為半正定的協方差矩陣;μ∈Rn為期望收益。則投資組合方案的收益可由如下函數表示:?(x,ξ)=xΤξ。
Markowitz用風險資產的期望收益μ來刻畫收益,以風險資產的協方差矩陣Q來刻畫風險,提出投資組合選擇問題的均值-方差模型。在Markowitz的基礎上,Sharpe[3]使用收益與風險的比例來度量收益與風險,稱為夏普比率最大化問題,使模型更為簡潔。
20世紀90年代之后,J.P.Morgan為代表的投資銀行由于其銀行業務風險的需要,對經典投資組合優化問題中的風險評估方法進行重新刻畫,提出了風險價值模型(Value-at-Risk,VaR)。VaR 模型是一種借助概率論和數理統計的方法對風險進行量化和測度的模型,由于其在測量不同市場的不同風險時的簡便性,在美國聯邦儲備銀行、美國證券交易委員會、歐盟、巴塞爾銀行監督委員會等國際知名金融機構得到了廣泛應用。
但是VaR 模型也存在著不滿足風險次可加性公理的缺陷,故Artzner等[4]提出了一致性風險測度概念,并將滿足單調性、一次齊次性、平移不變性和次可加性4條公理的風險測度定義為一致性風險測度。另一方面,Rockafellar等[5-6]將VaR 模型拓展為條件風險價值(Conditional Value-at-Risk,CVaR)模型,CVaR 模型是一種能保持凸性的一致性風險測度模型。
通常,投資組合選擇問題被刻畫為如下帶耦合約束的非線性規劃模型(P0):

式中:1n為各元素均為1的n維向量;〈·,·〉表示Rn空間中兩向量的內積。
這里考慮市場上的n個有風險的金融資產。投資者面臨的決策是對這些金融資產進行投資組合選擇,選擇決策由變量x=(x1,x2,…,xn)Τ∈Rn表示,x的每一個元素xi,i=1,2,…,n表示對第i個資產的投入比例。本文中假設不允許賣空,因此,有x≥0;假設x存在上界u,u≥0。如果現實需求中沒有明確給出上界u,通過預算約束式(2)不難得到u=1n。
文獻中對于風險函數r(x)有多種刻畫方式,下面介紹3種常見形式:
(1)均值方差形式[1,7]。Markowitz[1]以xTQx來衡量風險,因此可得當r(x)為下式時均值-方差模型[7-8](Pa)為

這一形式由Markowitz提出的投資組合理論而來,至今仍有廣泛地應用。
(2)風險價值形式[5,6,8-10]。20世紀90年代,以J.P.Morgan為代表的投資銀行對經典投資組合優化問題中的風險評估方法進行重新刻畫,風險價值模型(VaR)被提出。關于信任等級β和投資方案x的VaR 模型定義為

由于VaR 模型存在著不滿足風險次可加性公理的缺陷,Artzner等[4]提出了一致性風險測度概念,并將滿足單調性、一次齊次性、平移不變性和次可加性4條公理的風險測度定義為一致性風險測度。條件VaR 模型(CVaR)由Rockafellar等[5]提出。此外,Rockafellar等得到在α∈R 最小化如下輔助函數時,CVaR 和VaR 一致,即

因此,CVaR 可表示為

在ξ服從正態分布條件下,令φ和Φ分別為正態分布的概率密度函數和分布函數。Fabozzi等[8]在Rockaffellar等[5]基礎上,將VaR 模型轉化為

式中,ζβ=-Φ-1(1-β),β>0.5。從而得到VaR投資組合模型(Pb)。
進一步,如取積分形式,

CVaR 模型可轉換為

因此可得CVaR 投資組合模型(Pc)。
Branda等[9]在Fabozzi等[8]基礎上得到了魯棒VaR 模型,即

以及魯棒CVaR 模型:

因此可得魯棒VaR 投資組合模型(Pd)和魯棒CVaR 投資組合模型(Pe)。
由此可得在問題(P0)對應的r(x)分別為式(1b)~(1e)時,P0對應的問題分別為VaR 投資組合選擇問題(Pb)、CVaR 投資組合選擇問題(Pc)、RVaR 投資組合選擇問題(Pd)以及RCVaR 投資組合選擇問題(Pe)。
(3)損失函數形式[7,11-12]。在ξ偏離正態分布條件下,De Miguel等[7]提出了一類以損失函數作為目標函數的投資組合模型(Pρ),這一類模型被認為具有更好的魯棒性。其中為代表的是M-投資組合模型。該模型中定義的r(x)即最小化收益波動如下所示:

式中:ρ(·)是一個凸的損失函數;y為投資組合問題得到的收益。例如,經驗軌跡誤差函數[11]ρ1(ω)=‖ω‖2,投資組合規范函數[12]ρ2(ω)=log(1+ω)。
近年來,投資者在進行投資組合選擇時希望所得到的投資組合方案中被選擇的資產數量可控。模型中通常以基數約束來刻畫這一特征[13-19],即

式中:Card(x)均為向量x中非零元素的個數;τ為最多選擇資產的個數。式(4)在通常狀況下有如下兩種等價數學表達。
(1)L0范數表達:

(2)混合整數約束表達:

式中:1n為各元素均為1的n維向量;〈·,·〉表示Rn空間中兩向量的內積。
對于帶L0范數約束問題的求解,目前文獻中的研究主要分為兩種:一是以L1范數替代L0范數的凸松弛方法[20-24]。但是,投資組合選擇問題需要考慮的預算約束(式(2)),要求投資組合變量之和等于1,在不允許賣空情況下,又有x≥0。因此,投資組合變量的L1范數恒等于1。這一處理方法并不可行。另一研究方向為對L0范數約束問題進行近似,例如,以Lp范數(0<p<1)約束近似L0范數約束[25-28],以凹函數近似L0范數[9,29-30],以半正定規劃問題近似帶L0范數約束的投資組合優化問題[31]等,這一類方法通常運算效率很高,但理論結論往往不盡如人意,僅能得到局部最優解。
對于混合整數表達形式的求解,可利用經典混合整數規劃方法,如分支定界法,以求得問題的全局最優解[17]。但是由于松弛下界問題求解困難,目前僅有文獻[17]中利用混合整數約束研究帶基數約束的均值-方差模型的全局最優求解方法。相關研究如表1所示。

表1 基數約束投資組合問題相關研究匯總表
本文研究一種應用廣泛的基數約束投資組合模型。該模型以凸風險函數作為目標函數,在不允許賣空前題下,考慮基數約束和預算約束。帶基數約束的投資組合優化中常見的均值-方差模型以及VaR、CVaR、RVaR 和RCVaR 模型等均是這一模型的特殊形式。
本文以混合整數形式刻畫基數約束,將原問題刻畫為非線性混合整數規劃的形式。由于該模型下界松弛問題求解困難,目前尚無商用軟件可以直接精確求解這一非線性混合整數規劃模型。針對這個難點提出一種全局最優化算法,在分支定界法框架基礎上,用有效的一階算法求解下界松弛問題。最后,通過Fama-French(FF)產業投資組合基準測試數據集[32]中5、10、12 和17 等4組產業投資組合數據作為實驗基礎數據,設計仿真實驗。實驗結果表明,本文提出的方法能有效處理基數約束的產業投資組合問題,能夠給出任意基數的投資組合方案。
定義:〈·,·〉表示Rn空間中兩向量的內積;‖·‖p表示p階范數,對

特別地,當p=0時,‖x‖0表示x中非零元素的個數;當p=∞時,。1n為各元素均為1的n維向量,0n為各元素均為0的n維向量,In為n維對角矩陣,On為n維0矩陣。⊙表示兩向量對應元素相乘。
考慮如下基數約束投資組合模型(P):

這里考慮市場上的n個有風險的金融資產。投資者面臨的決策是對這些金融資產進行投資組合選擇,選擇決策由變量x∈Rn表示,x的每一個元素xi,i=1,2,…,n表示對第i個資產的投入比例。本文中假設不允許賣空,因此,有x≥0;假設x存在上界u,u≥0。如果現實需求中沒有明確給出上界u,通過預算約束式(2)不難得到u=1n。此外,引入基數約束式(4),τ為最多投資的資產個數,則自然有1≤τ<n。將風險函數式(1a)~(1f)統一為一個風險函數r(x),假設為光滑和凸的。
引入0-1變量構成的向量z∈{0,1}n,可將問題(P)寫成如下混合整數規劃問題(MIP):

不難看出,MIP是一個帶耦合約束的不可分離非線性混合整數規劃問題,由于其對應的連續松弛問題是一個帶線性耦合約束的不可分離非線性規劃問題,求解尤為困難,因而目前尚無可直接求解該問題全局最優解的商用軟件。下一節將針對問題(MIP)進行求解算法的設計。本文將用分支定界法處理問題中的整數變量,并采用有效的一階算法求解下界松弛問題。
本節進行算法設計,應用一般分支定界算法框架設計算法[33]對問題(P)進行求解,以分支定界處理整數變量,以有效的一階算法[34]求解松弛下界問題,它將在O(1/ε)的時間復雜度下得到下界松弛問題的ε近似最優解。
本文算法中分支策略根據整數變量構成的向量z的取值進行,對應的分支樹如圖1所示。分支樹上的每一節點都對應不同的向量z的取值。
由圖1不難得出分支:


圖1 分支樹結構圖
以此類推。
令l為一個包含nl個元素的0-1序列,nl≤n,對任意i滿足1≤i≤nl,li為序列中第i個元素,任意

如果nl<n,則對Sl進行分支,即將Sl0和Sl1加入分支列表。
定義分支Sl對應的松弛問題(RPl)為:

不難得出關于分支樹的剪枝條件的命題1。
命題1分支樹可以在如下3 種條件下進行剪枝:
(1)RPl無解。
(2)RPl的最優解滿足≤τ。
證明
(1)說明當前分支無可行解。
(3)隱含了這一分支一定不是最優解。證畢
需要考慮到,RPl是一個帶線性約束的不可分離的凸規劃問題。這一問題的求解本身具有相當大的難度,本文將用一階算法對其進行求解。這一問題的求解過程詳見4.3節。
根據4.1節中對分支、松弛問題的定義以及剪枝條件給出算法的總體框架,算法總體流程如下:
輸入基數約束投資組合問題的所有參數。
輸出所需投資組合方案。
步驟1初始化。設置分支集合。
步驟2終止條件檢驗。如果分支集合,則當前解為最優解,當前上界為最優值。
步驟3分支選擇與松弛問題計算。從中選擇Sl,并將Sl從中刪除。求解其對應的松弛問題(RPl)。定義為RPl的最優值,為RPl的最優解。
步驟4剪支:
步驟5分支。令為Sl的分支,將這些分支加入,更新下界,j=1,2,…,k,返回步驟2。
本節給出松弛下界問題的求解算法,RPl為一個帶耦合約束的凸非線性規劃問題,該問題的求解本身具有相當大的難度,首先根據分支Sl對RPl進行等價轉化。
由RPl中式(8)~(10)不難得到,在當前分支Sl中,?i=1,2,…,n,當zi=0時,xi一定為0;當zi為其他值時,xi可取0≤xi≤ui,故定義向量。根據分支Sl中z的值,確定ubl的值,

由此,RPl可改寫為如下非線性規劃問題(NLPl):

因此,對NLPl進行求解,即可得到松弛問題(RPl)的最優解。Zhao等[34]給出了一種一階算法(VAPP),可在O(1/ε)的時間復雜度下得到NLPl模型的ε近似最優解。
根據VAPP算法,首先對進行廣義Lagrangian松弛,得到(ALl):

因此,對問題(NLPl)的VAPP 算法的一般流程(VAPPl)如下式所示:

式中,πk=pk+〈1n,xk〉-1,算法的原始問題式(13)為在給定廣義Lagrangian乘子pk后,對ALl進行線性化規則化,求解相應問題得到原始變量更新。對偶問題為對廣義Lagrangian 乘子的更新。e是規則化參數,在具體算法流程中將以回溯的方式獲取。由于在式(1f)中加入了輔助變量y,故對目標函數的線性化部分?r(xk)會與當r(x)為式(1a)~(1e)時有所不同。對應不同算法具體流程如NLPl-1和NLPl-2所示:
(1)均值方差投資組合問題與風險價值投資組合問題的NLPl求解算法。首先討論均值方差投資組合問題和風險價值投資組合問題,即r(x)為式(1a)~(1e)時問題(NLPl)的求解方法,求解算法(NLPl-1)步驟如下:
輸入對應NLPl問題的所有參數,最大迭代次數K。
輸出所需NLPl問題的解。
初始化設置初始解x0==0n,p0=0,ε=10-6,η=0.9,e0=1。
步驟1設置k=0。
步驟2終止條件。如果‖xk+1-xk‖<ε或k=K,進入步驟7,否則進入步驟4。
步驟3計算投影:πk=pk+〈1n,xk〉-1。
步驟4求解原始優化問題。計算:

步驟5判斷是否下降。如果

如果下降,則保持參數ek+1=ek,更新原始變量xk+1=,求解對偶優化問題pk+1=pk+〈1n,xk+1〉-1;如果不下降,則調整參數ek=ηek,返回步驟4,重新求解原始優化問題。
步驟6計算,k=k+1,返回步驟3,計算新迭代點的投影。
步驟7輸出。
步驟4中,不同r(x)模型對應的梯度?r(x)如表2所示。

表2 式(1a)~(1e)對應不同r(x)形式和梯度?r(x)表
原始優化問題為

根據一階條件,可以得到原始優化問題的最優解的閉合表達式為:

(2)損失函數投資組合問題(NPLl)的求解算法。下面討論損失函數投資組合問題,即當r(x)為式(1f)時問題(NPLl)的求解方法闡述,求解算法(NPLl-2)步驟如下:
輸入對應NPLl問題的所有參數,最大迭代次數K。
輸出所需NPLl問題的解。
初始化設置初始解x0==0n,y0=0,p0=0,ε=10-6,η=0.9,e0=1。
步驟1設置k=0。
步驟2終止條件。如果‖xk+1-xk‖<ε或k=K,則進入步驟7,否則進入步驟4。
步驟3計算投影:πk=pk+〈1n,xk〉-1。
步驟4 求解原始優化問題。計算:

步驟5判斷是否下降。如果

則保持參數ek+1=ek,更新原始變量xk+1=,yk+1=,求解對偶優化問題pk+1=pk+〈1n,xk+1〉-1;否則,調整參數ek=ηek,返回步驟4,重新求解原始優化問題。
步驟6計算,k=k+1,返回步驟3,計算新迭代點的投影。
步驟7輸出。
步驟4,損失函數投資組合問題中,式(1f)對應不同r(x,y)形式和梯度?r(x,y)如表3所示。

表3 式(1f)對應不同r(x,y)形式和梯度?yr(x,y)表
損失函數投資組合問題可分離為x和y變量兩個原始問題。對于x變量的原始問題為

根據一階條件,可以得到最優解的閉合表達式:

對于y變量的原始問題為

根據一階條件,可以得到最優解的閉合表達式:

本文計算實驗運行環境:處理器為Intel(R)Core(TM)i5-6200U;內存為8 GB;操作系統為64位Windows 10;編程語言為matlab R2014b。選擇Fama-French(FF)基準測試數據集[32]中5、10、12和17這4組產業投資組合數據作為實驗基礎數據。
本節進行兩組實驗:
實驗1驗證本文算法對問題(P)求解的精確程度。在實驗1中選擇較為簡單的r(x)形式,當r(x)為式(1a)時的基數約束投資組合模型為混合整數二次規劃。混合整數規劃商用求解器Gurobi可對該問題進行精確求解。在實驗1中將本文算法的求解精度和Gurobi的求解精度進行展示,說明本文算法可精確求解基數約束的投資組合問題。
實驗2本文算法對問題(P)的其他較為復雜形式的模擬實驗。選擇r(x)為式(1b)~(1c)時的基數約束投資組合模型,該模型為混合整數非線性規劃,目前尚無商用軟件可直接進行求解,在實驗2中將對本文算法的求解問題規模和計算時間之間的關系進行分析。
考慮基數約束的均值-方差模型:當r(x)為式(1a)時,本文模型可表示為帶約束的二次混合整數規劃(Pa):

上述模型可用本文提出的算法和商業軟件Gurobi進行求解。本節以Fama-French(FF)基準測試數據集中5、10、12和17這4組產業投資組合數據計算樣本協方差矩陣Q和樣本均值μ,選擇γ=500,基數τ=2,分別應用本文算法和Gurobi軟件求解,對比兩種方法的計算時間、約束滿足程度以及目標函數值。這里以‖〈1n,x〉-1‖ 測度約束式(2)的滿足程度,以max{‖x‖0-τ,0}測度約束式(4)的滿足程度。由表4可看出,本文算法可精確求解問題(Pa)。

表4 P1a計算結果與程序運行時間展示
考慮基數約束的風險價值模型:當r(x)為式(1b)~(1e)時,本文模型可表示為帶約束的混合整數非線性規劃(Pb-Pe):

式中,cβ可取ζβ、ηβ、等4種形式。目前尚無可直接求解這一模型的商業軟件,故采用本文提出的算法求解。本節以Fama-French(FF)基準測試數據集中5、10、12和17這4組產業投資組合數據計算樣本協方差矩陣Q和樣本均值μ,選擇r(x)為式(1b)~(1c)形式,β=0.9,0.95,0.99,則對應cβ取值如表5所示。選擇基數τ=2,得到的投資組合問題計算時間與目標函數值如表6所示。

表5 參數選擇

表6 計算結果與計算時間展示
由表6數值實驗結果,對計算時間進行統計分析得圖2、3。由圖中可以看出,本文提出的方法可以在很短的時間內有效處理基數約束產業投資組合優化問題。但是,隨著規模的增加,由于分支定界算法自身劣勢,求解時間會快速增長。

圖2 不同算例計算時間圖

圖3 不同規模算例平均計算時間圖
本文研究基數約束投資組合模型,該模型以最小化風險函數為目標,在不允許賣空前題下,考慮基數約束和預算約束。該模型應用極其廣泛,包含帶基數約束的均值-方差模型、VaR 和CVaR 模型等。本文將該模型用非線性混合整數規劃模型來刻畫,目前尚無商用軟件可以求解得到這一問題的全局最優解。針對這一類問題提出一種全局最優化算法,在分支定界法框架基礎上,以有效的一階算法求解的下界松弛問題。最后,通過Fama-French(FF)5、10、12、17產業投資組合基準測試數據設計仿真實驗。實驗結果表明,本文提出的方法能有效處理基數約束產業投資組合優化問題,能夠給出任意基數要求下的投資組合方案,能夠幫助風險投資企業做出產業最優投資篩選決策。