我在R的solve.QP
软件包中使用quadprog
求解经典的均值-方差优化问题.据我理解,输出分量“值”指的是优化投资组合的方差,而在网上发布的许多均值-方差优化代码也表明,sqrt(sol$value)
是优化投资组合的标准差。
然而,当我使用solve.QP
求解简单的均值-方差优化时,sol$value
提供了一个负值,这与使用组合方差函数:w%*%covariance%*%t(w)
计算的值也不同。我试图在网上搜索sol$value
的定义或算法,但不幸的是,我找不到详细的描述。quadprog
的R文档只说明“值”是“标量,解的二次函数的值”。
熟悉solve.QP
的人也可以告诉我sol$value
的确切定义或算法。如果我对它的理解是正确的,即优化投资组合的方差,那么solve.QP
为我提供sol$value
负值的可能原因是什么。
发布于 2016-03-25 01:34:19
solve.QP
是二次优化问题的通用求解器。所以你必须知道你实际解决的是哪一个二次问题。由于您所处理的是均值-方差组合优化,您的优化可能就像
wopt=argmax_w(t(w)%*%r-lambda*t(w)%*%C%*%w)
以r
、w
、lambda
和C
为期望收益,分别确定了投资组合权重、风险规避参数和协方差矩阵。wopt
是最优权值向量。sol$value
将在wopt
给出目标函数的值。
其他一些均值-方差公式试图最大限度地限制t(w)%*%r
的风险(即方差)。对于这两种公式,sol$value
都不是方差t(wopt)%*%C %*%wopt
。也许你一直在研究最小方差投资组合优化?你的方差就是目标函数。
无论如何,您将获得您的均值-方差优化的方差
t(sol$solution)$%*%C%*%sol$solution
因为wopt=sol$solution
。
https://stackoverflow.com/questions/36216338
复制相似问题