我有一个关于这个算法的问题需要回答,因为我正在审核我的模型并且这种不一致是令人担忧的。
我正在使用它们必须总和为 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%。
有谁知道问题是什么?