Markowitz投资组合模型—基于R

1952年Markowitz给出了现代投资组合理论的基本框架,并于1990年获得诺贝尔经济学奖.

其基本思想是用收益率的期望来度量投资股票的收益率,用收益率的方差来衡量投资的风险,方差越大风险越大,方差越小风险越小.

假设有三种股票 (A,B,C),它们的年收益率分别为 (R_1,R_2,R_3),则 (R_i) 为一个随机变量,利用概率论相关知识可以得出

[E(R_1) = \mu_1,\quad E(R_2) = \mu_2,\quad E(R_3) = \mu_3 ]

年收益率的协方差矩阵为 (M).

用决策变量 (x_1,x_2,x_3) 分别表示投资人投资股票 (A,B,C) 的比例. 假设市场上没有其他投资渠道,且手上资金必须全部用于投资这3种股票,则

[x_1,x_2,x_3 \geq 0, \quad x_1+x_2+x_3 = 1 ]

于是投资的年期望收益率为

[E(R) = E(x_1R_1+x_2R_2+x_3R_3)=x_1ER_1+x_2ER_2+x_3ER_3 ]

年投资的方差为

[\begin{aligned} V &= D(x_1R_1+x_2R_2+x_3R_3)\ &= D(x_1R_1)+D(x_2R_2)+D(x_3R_3)+2cov(x_1R_1,x_2R_2)+2cov(x_1R_1,x_3R_3)+2cov(x_2R_2,x_3R_3)\ &= x_1^2DR_1+x_2^2DR_2+x_3^2DR_3+2x_1x_2cov(R_1,R_2)+2x_1x_3cov(R_1,R_3)+2x_2x_3cov(R_2,R_3)\ &=\sum_{j=1}^3\sum_{i=1}^3x_ix_jcov(R_i,R_j) \end{aligned} ]

然后,根据问题列出风险(方差)最小化的规划模型或者收益(期望)最大化的规划模型.

已知三种股票A,B,C从1943年到1954年价格每年的增长如下表所示,表中第一个数据1.3的含义是股票A再1943年末的价值是其年初价值的1.3倍,即年收益率为30%,其余数据依此类推. 假设你在1955年有一笔资金准备投资这三种股票,期望年收益率至少为15%,问应如何投资?

年份 股票A 股票B 股票C 1943 1.300 1.225 1.149 1944 1.103 1.290 1.260 1945 1.216 1.216 1.419 1946 0.954 0.728 0.922 1947 0.929 1.144 1.169 1948 1.056 1.107 0.965 1949 1.038 1.321 1.133 1950 1.089 1.305 1.732 1951 1.090 1.195 1.021 1952 1.083 1.390 1.131 1953 1.035 0.928 1.006 1954 1.176 1.715 1.908

问题求解

根据题意可知,表中数据减1即为年收益率.

Step1. 计算三种股票年收益率期望及协方差矩阵

> A <- c(0.3, 0.103, 0.216, -0.046, -0.071, 0.056, 0.038, 0.089, + 0.09, 0.083, 0.035, 0.176)> B <- c(0.225, 0.290, 0.216, -0.272, 0.144, 0.107, 0.321, 0.305, + 0.195, 0.390, -0.072, 0.715)> C <- c(0.149, 0.260, 0.419, -0.078, 0.169, -0.035, 0.133, 0.732, + 0.021, 0.131, 0.006, 0.908)> ## &#x8BA1;&#x7B97;&#x5747;&#x503C;&#x548C;&#x534F;&#x65B9;&#x5DEE;
> # &#x5199;&#x5165;&#x4E00;&#x4E2A;&#x77E9;&#x9635;
> M <- matrix(c(a,b,c), nrow="12)"> apply(M, 2, mean)
[1] 0.08908333 0.21366667 0.23458333
> round(cov(M), 4)
       [,1]   [,2]   [,3]
[1,] 0.0108 0.0124 0.0131
[2,] 0.0124 0.0584 0.0554
[3,] 0.0131 0.0554 0.0942
</-></-></-></->

于是,

[ER_1 = 0.0891, \quad ER_2 = 0.2137, \quad ER_3 = 0.2346\ COV = \left[ \begin{array}{c} 0.0108 & 0.0124 & 0.0131\ 0.0124 & 0.0584 & 0.0554\ 0.0131 & 0.0554 & 0.0942 \end{array} \right] ]

Step2. 规划模型的建立

  • 决策变量:用(x_1,x_2,x_3) 表示投资者投资三种股票的比例,于是就有

[x_1+x_2+x_3 = 1,\quad x_1,x_2,x_3 \geq 0 ]

  • 目标函数:由于要使得风险最小化,即年收益率的方差最小化,故目标为

[\min \ V = \sum_{j=1}^3\sum_{i=1}^3x_ix_jcov(R_i,R_j) ]

  • 约束条件:根据题意,期望年收益率至少为15%,即

[x_1ER_1 + x_2ER_2 + x_3ER_3 \geq 0.15 ]

综上,构造出了一个二次规划问题

[\begin{aligned} &\min \ V = \sum_{j=1}^3\sum_{i=1}^3x_ix_jcov(R_i,R_j)\ & \quad\quad x_1ER_1 + x_2ER_2 + x_3ER_3 \geq 0.15\ & \quad\quad x_1+x_2+x_3 = 1\ & \quad\quad x_1,x_2,x_3 \geq 0 \end{aligned} ]

下面利用 R 求解

> ## &#x4E8C;&#x6B21;&#x89C4;&#x5212;&#x7684;&#x6C42;&#x89E3;
> #install.packages("quadprog")
> library(quadprog)
> round(cov(M), 4) -> COV_M
> d <- c(0,0,0)> A <- t(matrix(c(mean, 1, -1, -1), nr="3," byrow="T))"> b0 <- c(0.15, 1, -1)> solve.QP(Dmat = COV_M, dvec = d, Amat = A, bvec = b0)
$solution
[1] 0.5300751 0.3565292 0.1133957

$value
[1] 0.01120525

$unconstrained.solution
[1] 0 0 0

$iterations
[1] 4 1

$Lagrangian
[1] 0.176950638 0.000000000 0.004132096

$iact
[1] 1 3
</-></-></->

于是投资三种股股票的比例为 A: 53.01%, B: 35.65%, C: 11.34%,风险最小为 (0.0112 \times 2 = 0.0224).

Original: https://www.cnblogs.com/hznudmh/p/16335795.html
Author: 帯蟊釜
Title: Markowitz投资组合模型—基于R

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591594/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球