目录

1. 学习目标

2. 操作讲解

3、作业结果


1. 学习目标

  1. 理解马科维茨的均值-方差模型
  2. 使用 Excel 实现均值-方差模型

python求平均值方差标准差 python均值方差模型_python


2. 操作讲解

在上一个任务中,我们通过实践理解了不确定性的风险和相关性风险。因此,一般情况下我们都需要进行投资组合来分散风险。

那么,怎样的组合才能保证我们既能获得较高的收益,同时承担较低的风险呢?这个问题并不好回答,因为组合里的每一项投资的风险和收益不尽相同。为此,哈里·马科维茨于 1952 年提出了经典的均值-方差模型(Mean-Variance Model),为收益与风险的双目标优化找到最佳的平衡点。

为了便于你理解,我们还是以股票为例。一开始投资者需要决定购买哪些股票以及资金在这些股票上的分配比例。如我们之前的案例所述,每支股票的投资回报和风险都不同,不同比例的配股也会导致不同的综合收益率和不确定风险。

那么,投资者怎样才能选择一个最优的组合呢?这时投资者的决策目标有两个:尽可能高的股票收益率和尽可能低的不确定性风险。最优的配股比例,应该让这两个相互制约的目标达到最佳的平衡。 由此建立起来的投资模型就是为均值-方差模型。

如果还是觉得不好理解,没关系,我们先使用一个简单的案例,在 Excel 中实现马科维茨的均值-方差模型。假设有两支股票 A 和 B,它们的预期收益、不确定风险和相关性风险如下:

python求平均值方差标准差 python均值方差模型_马科维茨的均值_02

 其中,每支股票的不确定性风险是由各自历史股价的标准差,而相关性风险是由这两支股票历史股价的协方差相关系数。从上表可以看出,相比股票 B 来说,股票 A 的收益率较低,但是不确定性风险小。同时,两支股票的相关性风险不大。接下里的问题是,如果我们配置不同呢比例的股票 A 和 B,那么综合的期望的收益和风险分别是多少呢?

python求平均值方差标准差 python均值方差模型_机器学习_03

 有了上述两个公式,我们就可以使用初级营所学的 Excel 数据分析技术,计算不同持股配比下,期望的综合收益和综合风险各是多少。我们在“中级营数据.xlsx”这个数据里,设置了相关的表格,包括两支股票的收益、风险、相关性和 10 种配股比例。在 10 种配股比例中,股票 A 从 100% 到 0%,每次递减10%,而相应的,股票 B 从 0% 到 100%,每次递增10%。

python求平均值方差标准差 python均值方差模型_python_04

 首先是计算综合收益,请注意其中 Excel 绝对引用的使用。

python求平均值方差标准差 python均值方差模型_马科维茨的均值_05

 然后是计算综合的风险,公式有些长,请不要出错。同样,请注意其中 Excel 绝对引用的使用。

python求平均值方差标准差 python均值方差模型_python求平均值方差标准差_06

 最后,我们就能得到在不同持股配比下,预期的收益率和基于标准差的风险各是多少。然后使用可视化的工具,咱们将这些数据转为一张散点图。

python求平均值方差标准差 python均值方差模型_马科维茨的均值_07

python求平均值方差标准差 python均值方差模型_python求平均值方差标准差_08

散点图的横轴为风险,而纵轴为收益率。从这张图左侧的尖端可以看出,当收益为 7% 到 8% 之间的时候,风险是最低的,甚至比收益为 6% 的时候还要低,这就是马科维茨均值-方差模型所计算出的最佳均衡点 。

当远离这个尖端点的时候,要么是收益下降而且风险上升,要么是收益上升,但是风险快速增加。而尖端点所对应的持股比例是 80% 的股票 A,和 20% 的股票 B,综合收益率是 7.4%,综合风险(标准差)是 4.63%。如果你想了解更多的细节,请参考请参考“中级营数据.xlsx”文件中的’均值-方差模型1’标签页。

当然,你可能会问,在变换持股比例的时候,为什么要以 10% 为单位递增或递减呢?如果尝试不同的递增或递减幅度呢?

这里要说明的是,理论上有无限种投资组合的比例,但是我们不可能穷举所有的可能性。所以,10%只是一种离散的近似。当然,我们可以尝试更小的变化幅度,例如 5%,然后看看结论有什么不同。这里我们假设股票 A 和 B 其他的基本信息,包括预期收益、不确定性风险和相关性风险不变,而只是将组合方式由 11 种变为 21 种,股票 A 的持股比例每次递减 5%,而股票 B 的持股比例每次递增 5%。

之后,我们就可以采用类似之前操作,计算综合的预期收益和预期风险,具体结果如下:

 

python求平均值方差标准差 python均值方差模型_均值算法_09

 同样地,使用散点图进行可视化。

python求平均值方差标准差 python均值方差模型_python_10

可以看到尖端所对应的收益率仍然在 7% 到 8% 之间,具体查询Excel表的数据,所对应的持股比例仍然是80%的股票A,和20%的股票B,综合收益率仍然是7.4%,综合风险(标准差)是仍然4.63%。由此可见,10%的递增递减幅度已经足够好了。当然,一般情况下我们都是可以尝试不同的离散度,来保证结果尽量精准。如果你想了设置变化幅度为5%后,数据如何变化的细节,请参考请参考“中级营数据.xlsx”文件中的’均值-方差模型2’标签页。

请你练习一下通过 Excel 实现均值-方差模型,这次请设置不同的个股收益、风险、相关性系数、持股比例。Excel数据“中级营数据.xlsx”中的’练习’标签里,提供了一个基础的模板供你使用。

在完成练习的同时,请你注意把关键过程和最终结果截图,放到一个文件夹中打包,并用“任务4”来命名,我们在项目的「课后作业」部分为你设置了统一提交的入口。


3、作业结果

python求平均值方差标准差 python均值方差模型_python求平均值方差标准差_11