Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化 您所在的位置:网站首页 fama模型数据 Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化

Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化

2023-03-23 13:00| 来源: 网络整理| 查看: 265

原文链接:http://tecdat.cn/?p=24983

本文我们超越了 CAPM 的简单线性回归,探索了 Fama French (FF) 股票风险/收益的多因素模型。

FF 模型通过回归除市场收益之外的几个变量的投资组合收益来扩展 CAPM。从一般数据科学的角度来看,FF 将 CAPM 的简单线性回归(我们有一个自变量)扩展到多元线性回归(我们有许多自变量)。

我们要看的是FF三因素模型,它测试的是(1)市场收益(与CAPM相同),(2)公司规模(小与大)和(3)公司价值(账面市值比)的解释能力。公司价值因素在FF中被标记为HML,代表高-低,指的是公司的账面与市场比率。当我们将投资组合的收益率与HML因子进行回归时,我们正在调查有多少收益是由于包括高账面市值比率的股票(有时被称为价值溢价,因为高账面市值的股票被称为价值股票)。

这篇文章的很大一部分内容涉及从FF网站导入数据,并对其进行整理,以用于我们的投资组合收益。我们将看到,处理数据在概念上很容易理解,但在实际操作中却很耗时。然而,对于任何拥有来自不同供应商的数据流并想创造性地使用它们的行业来说,将不同来源的数据混在一起是一项必要的技能。一旦数据被整理好,拟合模型就不费时间了。

今天,我们将使用我们通常的投资组合,其中包括:

+ SPY(标准普尔500基金)权重25%。 + EFA(一个非美国股票基金),权重25%。 + IJS(一个小盘股价值基金)权重20%。 + EEM (一只新兴市场基金)权重20%。 + AGG(一只债券基金)权重10%。

在计算该投资组合的 beta 之前,我们需要找到投资组合的月收益率。

mbls %    group_by%>%  p_tuaeoly %   tq_portfolio

我们将处理投资组合收益的一个对象。

Fama French 因子的导入和整理

我们的首要任务是获取 FF 数据,幸运的是,FF 在互联网上提供了他们的因子数据。我们将记录导入和清理这些数据的每个步骤。当我们需要更新此模型或扩展到 5 因素案例时,可以节省时间。

看看 FF website. 数据被打包为 zip 文件,所以需要做的不仅仅是调用 read_csv()。使用tempfile() 基础 R 中的 函数来创建一个名为 temp. 这是我们将放置压缩文件的地方。

temp %   mutate %>%    head

a99ea630150b504b52f6fd2a597efd08.png

如果我们想将日期重置为月末,我们需要先添加一个,然后回滚。

Gob3Fars %>%    select%>%   mutate %>%    head

10053eb4235c4c191325e4aae25bc3f1.png

我们还有其他方法可以解决这个问题--一开始,我们就可以将我们的投资组合收益率索引到indexAt = firstof。

最后,我们只想要与我们的投资组合数据一致的 FF 因子数据,因此我们  在投资组合返回对象中 按 日期first() 和 last()日期filter()。

Glb3Ftos %    rename%>%    mutate_at %>%    mutate) + months) %>%    filte head(Glb3Ftos , 3)

9b1a8b1c94a43f41db4c542d3d3d8dad.png

tail(Glaos, 3)

e79724580bcb24b295be3eb59419fd7b.png

我们用left\_join(...by = "date")将这些数据对象合并起来。还将FF数据转换为十进制,并创建了一个名为R\_excess的新列,保存高于无风险利率的收益。

ff\_proio\_tns %    left_join %>%    mutate head(ff_poleus, 4)

a0c49165d7b2d0c92ef7c4ba3c3897d5.png

我们现在有了一个包含我们的投资组合收益和 FF 因子的对象,并且可以从编码的角度进行最简单的部分,也是我们的老板/同事/客户/投资者唯一关心的部分:建模和可视化.

现在我们有了格式不错的数据。CAPM 使用简单的线性回归,而 FF 使用具有许多自变量的多元回归。因此,我们的 3 因子 FF 方程为 lm(R_excess ~ MKT_RF + SMB + HML。

我们将在 CAPM 代码流中添加一项,即为我们的系数包括 95% 的置信区间。

ffdlrhd %    do) %>%    tidy(conf.level = .95) fdlyd %>%    mutate_if %>%    select

5d48c759e3ff7d3c581014059c6dfc92.png

我们的模型对象现在包含一个 conf.high 和 conf.low 列来保存我们的置信区间最小值和最大值。

我们可以将这些结果通过管道传输到 ggplot() 并创建具有置信区间的系数散点图。我不想绘制截距,因此会将其从代码流中过滤掉。

我们用errorbar添加置信区间。

fdpynd %>%    mutate_if%>%   filter %>%    ggplot+    geom_point +   geom_errorbar +   labs +   theme_minimal +   theme

c1bd23c302cbb10f644d6f6c7ac58135.jpeg

这里的结果是可以预测的,因为与 CAPM 一样,我们正在回归一个包含 3 个因素的市场的投资组合,其中一个是市场。因此,市场因素在该模型中占主导地位,而其他两个因素的置信区间为零。

135f4bfc2be7737f12b7afcd4428a29c.png

本文摘选《R语言Fama French (FF) 三因子模型和CAPM多因素扩展模型分析股票市场投资组合风险/收益可视化》,点击“阅读原文”获取全文完整资料。

点击标题查阅往期内容

R语言Fama-French三因子模型实际应用:优化投资组合

R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现

Python计算股票投资组合的风险价值(VaR)

R语言Markowitz马克维茨投资组合理论分析和可视化

R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口

Python基于粒子群优化的投资组合优化研究

多均线趋势策略玩转股票投资

主成分分析(PCA)原理及R语言实现及分析实例

偏最小二乘回归(PLSR)和主成分回归(PCR)

R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

使用Python和Keras进行主成分分析、神经网络构建图像重建

R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化

欲获取全文文件,请点击左下角“阅读原文”。

d7a33dea4560ca1b9340e6efc88e5230.gif

eb57d79b112a657587be47e3245ba4a7.png

af01addb415c94691e739fc6a700f603.jpeg

1ce5b42561729a88ffc5ec039bc55481.png

欲获取全文文件,请点击左下角“阅读原文”。

8c60c40bb21d07f05bbb0bbb90541d70.gif



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有