人工蜂群算法在投资组合问题中的优化应用*

2019-09-03 07:22
计算机与数字工程 2019年8期
关键词:蜂群方差均值

张 懿

(台州职业技术学院经贸学院 台州 318000)

1 引言

近年来,中国风险投资业发展迅猛,风险投资企业(基金)和风险投资管理资金总量都在不断增长。证券投资的数量越来越多、品种不断趋于多样化,这不仅大大丰富了金融市场的产品,还成为了金融市场中一支骨干力量,并且在市场的平稳发展中发挥了不可忽视的作用。证券投资是证券市场运行环节中的重要组成部分,而证券组合理论又是最重要的证券投资理论之一。因此,建立合适的模型以及选择有效的算法来求解投资组合问题具有重要的研究意义。Markowitz为投资组合的选择建立了定量框架,首次提出均值-方差模型,为了避免用复杂的数学规划来求解,许多学者用智能算法来求解投资组合问题。

市场投资既有盈利的可能,也有亏损的风险,投资组合是一种目前常用的风险规避的方式。构建投资组合的合理目标应是在一定的风险水平下可以尽可能达到最高回报的投资组合,即有效的投资组合。为了构建能达到最有效目标的投资组合,马考维茨模型提供了一种明确的修炼过程——最优化。最优化过程被广泛地应用于资产配置过程中。由于在实际过程中,可供选择的主要资产类型有限,所以该过程是可操作的。

1952 年,时年 25 岁的 Markowitz[1]提出了一个在不确定条件下严格陈述可操作的选择资产组合理论:均值方差方法(Mean-Variancemethodology),并进行了系统、深入和卓有成效的研究,这一理论引起了股票投资理论的革命。自Markowitz提出均值-方差模型以来,大多数的投资组合模型是建立在均值和方差这两个参数之上的。随着投资组合理论的发展,新的风险度量方法不断涌现。王璐,吴婧[2]基于Markowitz投资组合均值方差模型,为不同的风险偏好投资者设计了投资组合的复合模型。2001年,何宜庆和王洗尘等研究了半方差模型[3];尹敬东从E-Sh风险的角度建立并研究了证券组合投资模型[4];赵贞玉和欧阳令南提出了半绝对离差(SemiA.D)概念[5],并在此基础上对均值-方差模型进行改进。通过分析上海的有代表性的50支股票复权价,得到结论:在每个期望收益率水平上,基于M-SemiA.D模型的投资组合都优于M-V模型中的投资组合,并且有效投资组合满足两基金分离定理。求投资组合问题的最优解实际上属于一类组合优化问题,通常归结为二次规划模型。求解过程十分繁琐,对数学基础要求很高,于是许多学者用智能算法来求解。张伟[6]等应用二进制编码遗传算法(geneticalgorithm,GA)求解该问题,具有简洁、直观的优势,但效率不够高;何洋林等[7]应用整数编码自适应遗传算法(adaptiveGA,AGA)求解该问题,提高了求解效率等。

人工蜂群算法由土耳其埃尔吉耶斯大学D.Karaboga等[8]于2005年提出,它是一种模仿蜜蜂行为而提出的启发式优化方法,是集群智能思想的一个具体应用。不需要了解问题的特殊信息是它的主要特点,因为只需对问题进行优劣的比较,通过各个人工蜂个体的局部寻优行为,最终在整个群体中使全局最优值突现出来,收敛速度较快。D.Karaboga在2005年成功地将蜂群算法应用于函数的数值优化[9],并提出较为系统的人工蜂群算法(Artificial Bee Colony Algorithm,ABC算法),算法简单,鲁棒性强,对于求解无约束优化问题它比其他启发式算法更具有优越性。

由于ABC算法的控制参数少、计算简单、易于实现,被越来越多的学者所关注。但传统的ABC算法容易陷入早熟收敛和后期收敛较慢。为克服这些问题,提升算法性能,许多学者对ABC算法进行改进。刘三阳等[10]提出一种利用随机动态局部搜索算子对当前的最优蜜源进行局部搜索,以加快算法的收敛速度的改进算法。周新宇等(2015)[11]改进了搜索方程,同时提出采用一般反向学习策略生成被放弃食物源的反向解,提高算法的搜索效率。

本文基于ABC算法的基本思想,对投资组合问题中的带基数约束的均值-方差模型(Cardinality-Constrained Mean-Variance Model,CCMV模型)进行求解。在求解过程中,针对CCMV模型设计了能够始终得到可行解的FABC算法。然后对FABC的更新方程进行改进,得到了收敛速度更快IFABC算法。最后,基于二次规划对IFABC算法进行进一步改进,提出了求解效果更优的QFABC算法。

2 投资组合的CCMV模型

设当前有N个可投资的资产,准备对其中K个资产进行投资。设对第i个资产的投资比例为xi(i=1,…,n)。当不投资第i个资产时,xi=0;否则,需要满足li≤xi≤ui。设投资第i个资产的平均收益为 μi,则总的投资收益为。而整个投资方案收益的方差为,其中 σij是资产xi和xj收益的协方差。投资收益的方差可以视为是投资的风险。

实际的投资回报可以表示为R=M-λV。其中λ是一个权衡系数,表示投资者对风险的乐观程度。例如取λ=0,则R=M ,表示投资者认为风险较小,期望在所有资产都能够达到平均收益情况下最大化回报。而取λ=1,则R=M-V,表示投资者认为风险较大,期望在所有资产的收益低于平均收益1个方差的情况下最大化回报。

在上述条件下最大化投资回报可以描述为带基数约束的均值-方差模型:

其中,[xi≠0]在满足 xi≠0时取1,否则取0。

3 人工蜂群算法求解CCM V模型

3.1 保证可行解的人工蜂群算法(FABC)

人工蜂群算法模拟蜂群采蜜过程,通过不同角色蜜蜂间的交流、转换和协作来实现群体智能。已有一些将ABC算法用于求解CCMV模型的相关工作[9~16],但是这些工作中的算法具有以下几个问题:

1)令 zi=[xi≠0],加入到决策变量中,增加了问题的规模。

2)不能始终保证获得的解是可行解。

为了解决上述问题,我们提出了一个能够始终获得可行解的ABC算法(FABC算法)。设种群中侦查蜂的数量为SN,则整个种群的解集可以用矩阵 XSN×N表示。 X的第i行表示第i个蜜蜂的解,用 Xi表示。而 Xij则表示第i个解的第 j个分量。采用ABC算法求解CCMV模型的基本步骤可以描述如下:

Step1:侦查蜂随机寻找食物源。

因为这样产生的解不是满足约束条件的可行解,需要将其调整为可行解。首先将解调整为只有K个非零元素,且满足范围约束。设Q是Xij(j=1,…,N)中最大的前K个元素的下标所构成的集合,则

然后,在满足范围约束的情况下使得投资比例之和为1。设 P={j|lj<Xij<uj},则

Step2:侦查蜂回巢之后交流各自侦查到的食物信息,重新制定侦查计划。每一只蜜蜂对当前第k个解的选择概率为

其中

是当前第k个解的适应度。而

是一个单调递增函数,从而一个解的适应度越高则被选择的概率越大。同时,将适应度最大的解和当前最优解X*进行比较,如果适应度更大则更新最优解。

Step3:侦查蜂在上次侦查结果的附近搜索新的食物源。然后用式(3)和式(4)将解修正为可行解。

Step4:当连续迭代Lim次之后,最优解仍未被改进,则转Step1重新生成初始解继续迭代,否则转Step2继续进行邻域搜索。当总的迭代次数次数到达MaxIter时算法终止,返回当前最优解X*。

3.2 改进的人工蜂群算法(IFABC)

在FABC算法中,侦查蜂在寻找新解时随机性较大,没有充分利用已有解的信息。在文献[17]的启发下,我们将当前最优解作为算法启发式过程的影响因子之一来搜索下一个最优解,提出了改进的IFABC算法(Improved Feasible Artificial Bee Colony Algorithm,IFABC算法)。

相比于FABC算法,IFABC算法唯一的不同在于将式(8)改为

FABC算法和IFABC算法的差异可以用图1的形象表达。

图1 FABC算法与IFABC算法差异示意图

在图1(a)中,Xi为当前解,Xk为其它任意一个解,新的解出现在与连线的反向延长线上。这表示ABC算法的启发式策略是在远离已有解的情况下寻找一个新的解。

在图1(b)中,Xi为当前解,Xi为其他任意一个解,X*表示当前最优解,则新的解出现在与连线的反向延长线与与连线的合成方向上。这表示IABC的启发式策略是在远离已有解的情况下,尽可能地靠近当前最优解。

因此,FABC的策略可以形象的表述为,在蜜蜂采蜜的过程中,各个蜜蜂应该尽可能地分散开来,才更有可能找到收益度更好的花源。即FABC算法代表了无指导的分散查找策略。与之相对的,IFABC的策略代表了有指导的分散查找策略。如果各个蜜蜂在分散搜索食物源的时候,有意识地向当前最好的食物源靠近,那么将更有可能发现更好的食物源。

3.3 基于二次规划进一步改进的人工蜂群算法(QFABC)

回顾CCMV模型,当基数约束K确定时,该模型退化为一个二次规划模型。而上文中的ABC算法和IABC算法对于这个退化的二次规划模型都没有取得最优解。因此,可以基于二次规划进一步改进ABC算法,称为QFABC算法(Quadratic Feasible Programming Based Artificial Bee Colony Algorithm)。

为了基于二次规划进行优化,本文将CCMV模型转化为一个双层规划模型。外层规划问题为

其中,x*i是在取定Q的情况下,内层规划问题的最优解。内层规划为

将CCMV模型转化为上述双层规划模型之后,对外层模型采用FABC算法的框架进行求解,内层模型采用Matlab的quadprog函数进行求解。外层模型求解的FABC算法框架为

Step1:初始化。随机选择K个下标构成集合Q,若 j∈Q则Zij=1,否则Zij=0。

Step2::重新制定侦查计划。和FABC算法相同。

Step3:更新解。取

其 中 sig mod(x)=1/(1+e-x)。 之 后 再 将Zij(j=1,cd ots,N)中最大的 K 个设为1,剩下的设为0,使其满足约束条件。

Step4:判定算法结束。与FABC算法相同。

4 数值实验

本文使用OR-library中的数据,OR-library是一个包含各种运筹学问题的测试数据集的库。其中包含5个国家或地区的从1992年3月至1997年9月的真实市场数据,本文选择OR-library中US市场的S&P100指数中的98只股票作为研究对象,对本文提出的三个算法进行对比测试。

本文用Maltab编程,取种群大小SN=10,最大迭代次数MaxIter=100,迭代更新阈值Lim=10,对US市场的98只股票,分别采用文中的三种算法进行测试。测试时取基数约束K=10,所有资产的投资下界li=0.01,投资上界ui=1。当权衡系数λ=1时,三种算法的迭代曲线如图2所示。因为本文的算法具有随机性,所以图中的结果是由5次独立实验的均值绘制而成的。

图2 三种算法迭代对比图

从图2中可以看出,IFABC因为利用了当前最优解的信息,迭代收敛速度明显优于FABC算法。并且,由于QFABC在二次规划子问题中达到了最优,因此QFABC算法再迭代初期就得到了较好的解。QFABC算法在迭代后期也在缓慢的改进最优解。最终,QFABC算法的结果要由于IFABC算法,IFABC算法优于FABC算法。

而表1展示了本文测试中三个算法的最优解和平均运行时间。从表1中可以看出,FABC和IFABC的运行时间相近,都比较短。而QFABC因为进行了二次规划,运行时间较长。因为QFABC在迭代初期就得到了足够好的解,在应用QFABC算法求解问题时可以减小最大迭代次数来减少运行时间。

表1 最优解和运行时间对比(λ=1.0)

对比三者的最优解可以发现,QFABC和IFABC都选择了34,42和82这三只股票作为主要投资对象,只是比例略有差别。而QFABC因为二次规划的作用,在确定投资的股票之后,其投资比例是最优的,因此QFABC算法的结果要由于IFABC算法。而FABC的结果中只要有82号股票的比例较大,因此其最优解和其它两个算法的差距较大。

最后,本文对比了三个算法在λ的不同取值下的表现,实验结果如表2所示。从表2中可以看出,λ越大,QFABC相对于IFABC的优势越明显。这是因为λ越大,模型的二次规划占比越重,二次规划的优化作用将更加明显。

表2 不同λ最优解平均值对比(单位:‰)

5 结语

5.1 结论

本文采用了三种策略解决了最优投资组合问题。并利用由OR-Library提供的真实股票市场的数据对三种求解策略进行测试,比较各个算法的性能,得出了以下结论:

1)FABC、IFABC、QFABC算法都能有效地求解投资组合问题的CCMV模型,且随着迭代次数的增加,各种算法的解都变得越来越好。在相同迭代步数下,QFABC算法的优化效果最好,IFABC次之。随着λ的增大,QFABC算法相对于IFABC算法的改进效果越来越大。

2)在相同迭代次数的情况下,FABC算法和IFABC算法的运行时间较短,QFABC算法的运行时间较长。QFABC算法能够用较少的迭代次数得到足够好的解,因此可以减少QFABC算法的迭代次数来提高QFABC算法的运行效率。

5.2 展望

鉴于本文的写作时间以及作者水平有限,文章对某些问题难免有欠妥之处,包括已发现和未发现的,有待于在今后的工作中逐步修正和完善。本文在以下方面还需努力:

1)本文的均值-方差模型中所用的收益率以及风险的数据直接来源于OR-library,其收益率直接用往期的收益率均值来估计,其估计值较为粗略,对收益率的变动灵敏度几乎接近零,而没有用更加科学稳定的方法来估计未来收益和风险。

2)本文的着重点在于改进算法,而对于投资组合问题意义上的介绍较少。例如,目标函数为均值减标准差,但它并没有具体的实际意义,无法简单用金额来衡量,只能通过比较数值大小判断哪个算法更优。它最接近的意义是收益的最小值,但并不完全如此。

3)由于数据的局限性,未能找到我国A股的相关数据,而只能用OR-library库中的1992年至1997年的数据。在数学的角度上对算法性能的判断没有影响,可能对于投资组合问题有时效性的影响。

猜你喜欢
蜂群方差均值
概率与统计(2)——离散型随机变量的期望与方差
均值—方差分析及CAPM模型的运用
均值—方差分析及CAPM模型的运用
浅谈均值不等式的应用
方差生活秀
均值不等式的小应用
揭秘平均数和方差的变化规律
方差越小越好?
蜂群春管效果佳
蛰伏为王