我有一个关于这个算法的问题我需要回答,因为我正在审核我的模型并且这种不一致性是令人担忧的。
我正在使用约束进行均值 - 方差优化,它们必须总和为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%。
任何人都知道问题是什么?
答案 0 :(得分:1)
我想出了这个问题。
Sigma应该是2 * Sigma,这是使用矩阵代数进行投资组合优化的拉格朗日值。