【发布时间】:2016-10-01 09:26:40
【问题描述】:
我有一个关于此算法的问题需要回答,因为我正在审核我的模型,并且这种不一致令人担忧。
我正在使用它们必须总和为 1 的约束进行均值方差优化,并且权重必须在我指定的范围内。我的输入如下:
Dmat = Sigma
dvec = rep(0, ncol(Sigma))
Amat = rbind(rep(1, ncol(Sigma)), diag(ncol(Sigma)), -diag(ncol(Sigma)),
ncol=ncol(Sigma))
bvec = c(1, MinWeights, -MaxWeights)
然后我运行:
Out = solve.QP(Dmat, dvec, t(Amat), bvec, meq=1)
Weights = Out$solution
Var = t(Weights) %*% Sigma %*% Weights
Var == Out$value
问题是最后一个命令我得到了 FALSE。这不是一个四舍五入的问题,它们相差近 20%。
有人知道问题出在哪里吗?
【问题讨论】:
-
1) solve.QP 2) 我回家后会编辑矩阵
-
请考虑将您的问题转为Minimal, Reproducible Example。您发布的代码未提供变量
Sigma、MinWeights和-MaxWeights的定义。此外,假设MinWeights和MaxWeights的长度为ncol(Sigma),则Amac和bvec的尺寸不兼容。ncol=ncol(Sigma)的作用是什么?
标签: r optimization quadprog