【发布时间】:2021-09-20 09:18:12
【问题描述】:
在投资组合分析中,给定期望,我们的目标是找到每个资产的权重以最小化方差
这里是代码
install.packages("quadprog")
library(quadprog)
#Denoting annualized risk as an vector sigma
sigma <- c(0.56, 7.77, 13.48, 16.64)
#Formulazing the correlation matrix proposed by question
m <- diag(0.5, nrow = 4, ncol = 4)
m[upper.tri(m)] <- c(-0.07, -0.095, 0.959, -0.095, 0.936, 0.997)
corr <- m + t(m)
sig <- corr * outer(sigma, sigma)
#Defining the mean
mu = matrix(c(1.73, 6.65, 9.11, 10.30), nrow = 4)
m0 = 8
Amat <- t(matrix(c(1, 1, 1, 1,
c(mu),
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1), 6, 4, byrow = TRUE))
bvec <- c(1, m0, 0, 0, 0, 0)
qp <- solve.QP(sig, rep(0, nrow(sig)), Amat, bvec, meq = 2)
qp
x = matrix(qp$solution)
x
(t(x) %*% sig %*% x)^0.5
我了解 mu 和协方差矩阵的公式,并且知道quadprog 图的用法
但是,我不明白为什么 Amat 和 bvec 是这样定义的,为什么是 6 x 4 矩阵。
$mu0$ 是我们对投资组合的期望值,固定为 8%
【问题讨论】:
标签: r quadprog r-portfolioanalytics