R cran中参与约束下的最小方差组合
Minimum variance portfolio under participation constraint in R cran
我想找到 3 种风险资产的最小方差投资组合,其中所有资产的权重总和 = 2,资产 1 的权重设置为 +1(即问题是通过以下方式最小化投资组合 vol仅调整资产 2 和 3 的权重,前提是它们不超过 1 且 >=0。我发现以下代码片段可以最大限度地降低 3 资产组合的风险,但我不确定如何合并体重限制。欢迎任何帮助/建议。
covmat <- matrix(c(3.235343e-02, -3.378191e-03, -1.544574e-05,
-3.378191e-03, 8.769166e-03, 1.951734e-06,
-1.544574e-05, 1.951734e-06, 2.186799e-06),3,3)
mat <- rbind(cbind(2*covmat,rep(1, 3)), c(rep(1, 3), 0))
vec <- c(rep(0, 3),1)
smat <- solve(mat)%*%vec
smat[1:3,1]
谢谢,
R 有一个专为这些类型的问题设计的 QP(二次规划)求解器:
library(quadprog)
covmat <- matrix(c(3.235343e-02, -3.378191e-03, -1.544574e-05,
-3.378191e-03, 8.769166e-03, 1.951734e-06,
-1.544574e-05, 1.951734e-06, 2.186799e-06),3,3)
# linear constraint matrix
A <- rbind(c(1,1,1),diag(3))
# rhs
b <- c(2,1,0,0)
# solve QP model
solve.QP(covmat,dvec=rep(0,3),Amat=t(A),bvec=b,meq=2)$solution
输出:
[1] 1.0000000 0.3835757 0.6164243
我想找到 3 种风险资产的最小方差投资组合,其中所有资产的权重总和 = 2,资产 1 的权重设置为 +1(即问题是通过以下方式最小化投资组合 vol仅调整资产 2 和 3 的权重,前提是它们不超过 1 且 >=0。我发现以下代码片段可以最大限度地降低 3 资产组合的风险,但我不确定如何合并体重限制。欢迎任何帮助/建议。
covmat <- matrix(c(3.235343e-02, -3.378191e-03, -1.544574e-05,
-3.378191e-03, 8.769166e-03, 1.951734e-06,
-1.544574e-05, 1.951734e-06, 2.186799e-06),3,3)
mat <- rbind(cbind(2*covmat,rep(1, 3)), c(rep(1, 3), 0))
vec <- c(rep(0, 3),1)
smat <- solve(mat)%*%vec
smat[1:3,1]
谢谢,
R 有一个专为这些类型的问题设计的 QP(二次规划)求解器:
library(quadprog)
covmat <- matrix(c(3.235343e-02, -3.378191e-03, -1.544574e-05,
-3.378191e-03, 8.769166e-03, 1.951734e-06,
-1.544574e-05, 1.951734e-06, 2.186799e-06),3,3)
# linear constraint matrix
A <- rbind(c(1,1,1),diag(3))
# rhs
b <- c(2,1,0,0)
# solve QP model
solve.QP(covmat,dvec=rep(0,3),Amat=t(A),bvec=b,meq=2)$solution
输出:
[1] 1.0000000 0.3835757 0.6164243