作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用Solve.QP解决投资组合优化问题(二次问题)
共有3个 Assets
有4个约束:
Dmat <- matrix(c(356.25808, 12.31581, 261.8830, 212.31581, 27.24840, 18.50515, 261.88302, 18.50515,535.45960), nrow=3, ncol=3)
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1)
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
bvec <- c(1, 5.2, rep(0, 3), rep(-0.5, 3))
library(quadprog)
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=2)
Error in solve.QP(Dmat, dvec, Amat, bvec, meq = 2) : constraints are inconsistent, no solution!
最佳答案
您发布的代码存在两个问题:
Dmat
实际上不是对称的。您不小心包含了值212.31581而不是12.31581 meq=2
选项意味着您的前两个约束保持相等,这意味着您的权重之和为1,而返回率恰好是5.2%。第二个约束显然是导致不可行的约束;鉴于您的其他限制条件,似乎没有有效的投资组合的 yield 完全等于5.2%。实际上,由于不超过一半的投资组合可以拥有3.33%的返回,而其余投资组合必须至少具有9.07%的返回,因此返回率必须为6.2%或更高。因此,您应该通过设置meq=1
将其放宽到> =约束。 library(quadprog)
Dmat <- matrix(c(356.25808, 12.31581, 261.88302, 12.31581, 27.24840, 18.50515, 261.88302, 18.50515,535.45960), nrow=3, ncol=3)
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1)
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
bvec <- c(1, 5.2, rep(0, 3), rep(-0.5, 3))
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=1)
qp$solution
# [1] 0.3808733 0.5000000 0.1191267
关于r-投资组合优化-Solve.QP-约束不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090037/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我是一名优秀的程序员,十分优秀!