定义
二次规划定义很简单,当非线性规划中目标函数的未知项次数为二次形式时,我们可以称之为二次规划。
二次规划的一般标准形式如下所示:
为了便于理解,可以用二元随机变量的形式简单的表示如下:
对于二次规划概念,并不难,只要把对应的线性函数和非线性函数改为二次函数就可以实现二次规划目标函数,因此本篇文章侧重点还是在于后面的案例介绍。
案例
接下来将为大家介绍一个案例:证券投资组合的风险度量模型Markowitz模型的优化问题。
在介绍这个案例之前,需要给大家科普一下几个概念性的问题。
方差
从数学定义上来看,它是用来衡量一个一维随机变量和其数学期望(均值)之间的离散程度。通俗一点讲,就是衡量样本在其均值附近波动幅度大小。
举个例子,假如一个射击运动员A射击成绩为{9,10,8,7,6},另一个射击运动员B射击成绩为{9,9,8,7,7},那么可以明显得到A、B的成绩平均值都为8,但是从A、B的数据来看不用计算就可以明显看出B的成绩要比A稳定,波动幅度要小于A。
方差分为两种,一种是总体方差,一种是样本方差。所谓总体方差就是原始数据没有经过任何处理而计算得到的方差,样本方差是通过对原始数据进行抽样而计算得到的方差。二者计算公式如下所示:
总体方差:
样本方差:
协方差
在数学上,协方差定义为衡量两个随机变量之间关系的统计量。通俗一点讲,就是用来判断一个样本里面两个指标之间的关系。例如,收集人的各类生理指标数据样本中身高和体重的关系。协方差的计算公式如下所示:
将协方差公式与样本方差公式对比可以发现,当把协方差两个随机变量换成同一个随机变量时,协方差公式就等同于样本方差公式,即D(x)=Cov(x,x)。从协方差公式也能看出,当协方差大于0时,两个随机变量之间存在正相关的关系,当协方差小于0时,两个随机变量之间存在负相关关系。当协方差为0时,我们认为两个随机变量构成统计意义上的相互独立。而我们常说的两变量之间相关系数也是自协方差而来,例如皮尔森相关系数=协方差/[开根号(方差A*方差B)]。
方差、协方差二者关系
假设方差为D,均值为E,协方差为Cov,随机变量x和y,则有:
推导过程如下所示:
协方差矩阵
数学定义是这么写的,分别为m与n个标量元素的列向量随机变量X与Y,这两个变量之间的协方差定义为m×n矩阵.其中X包含变量X1.X2......Xm,Y包含变量Y1.Y2......Yn,假设X1的期望值为μ1,Y2的期望值为v2,那么在协方差矩阵中(1,2)的元素就是X1和Y2的协方差。
通俗一点讲,当协方差存在多个时,例如X1和Y1的协方差、X1和Y2的协方差、X2和Y2的协方差,为了便于表示和便于计算,此时我们便需要用到协方差矩阵了。那么这个协方差矩阵里的(1,1)元素则表示为X1和Y1的协方差值,(1,2)元素表示为X1和Y2的协方差值,其它类似。从协方差矩阵的定义可以看出,协方差矩阵其实是一个对称矩阵,即协方差矩阵中(m,n)元素的值和(n,m)元素的值是相等的。
在科普了这三个概念后,我们回到正题:证券投资组合的风险度量模型Markowitz模型的优化问题。Markowitz模型是个好东西,它又被称为均值-方差模型,由H.M.Markowitz(哈里·马科维茨)在1952年提出,他把风险定义为期望收益率的波动率,首次将数理统计的方法应用到投资组合选择的研究中。
为了说明这个模型的用处,举个例子。假如你有一笔资金,打算投资证券领域,并且打算在一段时间后卖出,那么你首先需要决定购买哪些证券,而现有的证券市场证券组合有成百上千种,你希望能够从这里选择一个最优的一个组合来使你投资风险尽量最小化,而受益尽量最大化,最好是二者相互制约达到平衡,这个时候你就需要用到Markowitz模型。
Markowitz模型建立在一系列严格的假设之上:
投资者事先就已知道投资证券的收益率的概率分布;
即投资者需要对投资的各类证券的收益状况和价格行情都必须时刻有所了解(这个感觉好难)。
投资者用证券收益率的方差或标准差来度量风险;
风险就是一个证券在预期投资收益率上下波动的大小,如果波动越大,说明对投资带来的不确定性风险就越大,而这一指标可以通过对收益率的方差来进行衡量。
投资者都遵守占优原则,即同一风险水平下,选择收益率较高的证券;同一收益率水平下,选择风险较低的证券;
这个就不用解释了。
各种证券的收益率之间有一定的相关性,它们之间的相关程度可以用相关系数或收益率之间的协方差来表示。
各类证券之间都存在一定的关系,由于它们处于证券市场中时刻都被交易着,所以必然会相互影响。
在满足上述假设的前提下,假定投资者投资了N种证券,Xi表示证券组合中第i种证券的投资数量,Ri表示第i种证券的收益率,Cov(Xi,Xj)表示第i种证券和第j种证券的协方差,δ2表示证券组合收益率的方差,则有:
约束条件存在两种情况:
允许卖空,即允许Xi出现小于0的情况;
不允许卖空,则要求所有Xi大于等于0;
接下来对证券组合确定已知问题:
N=4,可购买的证券总数量为10000,投资组合希望预期收益率设定至少在1000元以上,各投资证券[X1,X2,X3,X4]接下来一段时期的预期收益率对应为[0.05,-0.2,0.15,0.30],各投资证券Xi和Xj协方差矩阵如下所示:
那么上述问题可以转化在确定投资组合预期收益率的前提下,尽可能的减小投资组合模型的风险,针对上述已知条件,考虑约束条件中1种情况,建立QP规划模型:
由上述模型,利用OPTMODEL过程得到如下代码:
运行程序之后,我们可以得到如下结果:
运行时间在log中如下所示:
NOTE: “PROCEDURE OPTMODEL”所用时间(总处理时间):
实际时间 5.70 秒
CPU 时间 0.96 秒
从模型结果来看,模型问题为二次规划(QP)问题,模型采用的算法为内点法,与上一篇案例采用的是同一算法,并达到最优化(Optimal),且最终得到最优结果为2232313.4432,证券投资组合为X1为3452.9,X2为0,X3为1068.8,X4为2223.5。
上述案例只给出了在不允许卖空的情况下模型的优化结果,当证券组合允许卖空的情况下,模型会呈现出另外一种结果,大家可以自行尝试一下,约束条件只需要把证券范围大于等于0这一条件去掉即可。
未完待续。。。。。。。
微信公众号:mingfeng07数据搬运工
个人微信:xiaopengpeng07
欢迎加我微信一起来愉快地玩耍啦!