-1

我有一个关于这个算法的问题需要回答,因为我正在审核我的模型并且这种不一致是令人担忧的。

我正在使用它们必须总和为 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%。

有谁知道问题是什么?

4

1 回答 1

1

我弄清楚了这个问题。

Sigma 应该是 2*Sigma,这是使用矩阵代数进行投资组合优化的拉格朗日值。

于 2016-10-01T01:26:40.340 回答