0

我正在使用solve.QPRquadprog包来解决经典的均值方差优化问题。在我的理解中,输出分量“值”是指优化投资组合的方差,网上发布的许多均值方差优化代码也表明这sqrt(sol$value)是优化投资组合的标准差。

但是,当我solve.QP用来解决简单的均值方差优化时,sol$value给我提供了一个负值,它也不同于使用投资组合方差函数计算的值:w%*%covariance%*%t(w). 我试图在网上搜索定义或算法,sol$value但不幸的是我找不到详细的描述。R文档quadprog仅声明“值”是“标量,解处的二次函数的值”。

因此,任何熟悉的人都solve.QP可以告诉我 . 的确切定义或算法sol$value。如果我对它的理解是正确的,即优化投资组合的方差,那么solve.QP为我提供负值的可能原因是什么sol$value

4

1 回答 1

0

solve.QP是二次优化问题的通用求解器。所以你必须知道你实际解决的是哪个二次问题。由于您正在处理均值方差投资组合优化,因此您的可能就像

 wopt=argmax_w(t(w)%*%r-lambda*t(w)%*%C%*%w)

其中rw和是预期收益lambdaC投资组合权重、风险厌恶参数和协方差矩阵。wopt是最优权重向量。sol$value将为您提供目标函数的值wopt

其他一些均值方差公式试图在t(w)%*%r限制风险(即方差)的情况下最大化。对于这两种配方sol$value都不会出现方差t(wopt)%*%C %*%wopt。也许您一直在研究最小方差投资组合优化?你的方差就是目标函数。

无论如何,您将通过以下方式获得均值方差优化的方差

t(sol$solution)$%*%C%*%sol$solution

因为wopt=sol$solution.

于 2016-03-25T09:34:19.150 回答