【问题标题】:Quadratic optimization - portfolio maximization problems二次优化 - 投资组合最大化问题
【发布时间】: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 图的用法

但是,我不明白为什么 Amatbvec 是这样定义的,为什么是 6 x 4 矩阵。

$mu0$ 是我们对投资组合的期望值,固定为 8%

附上问题

【问题讨论】:

    标签: r quadprog r-portfolioanalytics


    【解决方案1】:

    您可能知道,Amat 有四列的原因是您分配了四个资产。它有六行,因为您的问题中有六个约束:

    1. 分配加起来为 1 (100%)
    2. 预期回报 = 8%
    3. “货币市场”分配 >= 0
    4. '资本稳定'分配 >= 0
    5. “余额”分配 >= 0
    6. “增长”分配 >= 0

    查看定义每个约束的数字。这就是为什么bvec[1, 8, 0, 0, 0, 0]。在这六个中,前两个是等式约束,这就是为什么meq 设置为 2(其他四个大于或等于约束)。

    编辑添加:

    约束的工作方式是这样的:Amat 的每一列定义一个约束,然后将其乘以资产分配,结果等于(或大于或等于)某个目标设置在bvec。例如:

    Amat的第一列是[1, 1, 1, 1]bvec的第一列是1。所以第一个约束是:

    1 * money_market + 1 * capital_stable + 1 * balance + 1 * growth = 1
    

    这是资产分配加起来等于 1 的一种说法。

    第二个约束表示预期收益加起来为 8:

    1.73 * money_market + 6.65 * capital_stable + 9.11 * balance + 10.32 * growth = 8
    

    现在考虑第三个约束条件,即“货币市场”分配大于或等于零。这是因为Amat 的第三列是[1, 0, 0, 0]bvec 的第三列是0。所以这个约束看起来像:

    1 * money_market + 0 * capital_stable + 0 * balance + 0 * growth >= 0
    

    简化,同:

    money_market >= 0
    

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2018-03-17
      • 2021-08-20
      • 2023-01-13
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2013-04-20
      相关资源
      最近更新 更多