爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      首页 知识中心 云计算 文章详情页

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      2023-07-07 07:48:26 阅读次数:423

      R语言

      今天我们将计算投资组合收益的CAPM贝塔。这需要拟合一个线性模型,得到可视化,从资产收益的角度考虑我们的结果的意义。

      简单的背景介绍,资本资产定价模型(CAPM)是由威廉·夏普(William Sharpe)创建的一个模型,它根据市场收益和资产与市场收益的线性关系来估算资产的收益。这种线性关系就是股票的贝塔系数。
      计算CAPM的betas可以作为一个团队工作中更复杂的模型的一个很好的模板。
      我们将专注于CAPM的一个特定方面:β值。正如我们上面所指出的,贝塔系数是指一项资产的收益率回归到市场收益率的结果。它抓住了资产与市场之间的线性关系

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

      pri <- 
        getSymbols(symbols, src = 'yahoo', 
                   from = "2013-01-01",
                   to = "2017-12-31",
                   auto.assign = TRUE, warnings = FALSE) %>% 
      monthly <- to.monthly(pri

      我们将两个投资组合收益和一个资产收益一起分析。

       

      CAPM和市场收益

      我们的第一步是做出选择,用哪种资产作为市场收益的代理,我们将选择SPY ETF,将标准普尔500指数视为市场收益。

      让我们计算一下SPY的市场收益。注意开始日期是 "2013-01-01",结束日期是 "2017-12-31",所以我们将使用五年的收益。

      getSymbols("SPY", 
                     src = 'yahoo', 
                     from = "2013-01-01", 
                     to = "2017-12-31",
                   auto.assign = TRUE, 
                   warnings = FALSE) %>% 
      
      return <-
        Return.calculate(monthl, method = "log") %>%

       

       我们还想要一个市场收益率的data.frame对象,并转换xts对象。

      returns_tidy <-
        returns_xts %>% 
          tk_tbl(preserve_index = TRUE, rename_index = "date") %>%

       R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      我们有一个market_returns_tidy对象。我们确保它的周期性与投资组合周期一致

      monthly %>% 
        mutate(market_returns = returns_tidy$returns) %>%
        head()

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      如果周期性不一致,mutate()就会抛出一个错误。

      计算CAPM贝塔

      计算投资组合的β值,首先让我们看看这个方程式。

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      投资组合β等于投资组合收益和市场收益的协方差,除以市场收益的方差。

      我们可以用cov计算分子,即投资组合和市场收益的协方差,用var计算分母。

      我们的投资组合β值等于。

      cov(monthly,returns)/var(returns)

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      这个β值相当接近于1,毕竟SPY是这个投资组合的一个重要部分。

      我们也可以通过找到我们每个资产的贝塔值,然后乘以资产权重来计算组合贝塔值。也就是说,投资组合贝塔值的另一个方程式是资产贝塔值的加权和。

       R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      为了在R中使用这种方法,我们首先要找到我们每个资产的β值。

      我们需要将每项资产的收益率回归到市场收益率上。我们可以用lm()对资产1进行回归,然后再用lm()对资产2进行回归,等等。但如果我们有一个50个资产的投资组合,这将是不现实的。相反,我们写一个代码流程,使用map()来回归我们所有的资产,并通过一次调用计算betas。

      我们将从我们的returns_long整齐的数据框架开始。

      assets

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      nest(-asset)改变了我们的数据框架,所以有两列:一列叫做asset,保存我们的资产名称,一列叫做data,保存每个资产的收益列表。现在我们已经将收益列表 "嵌套 "在一列中。

      现在我们可以使用map()对每个嵌套的列表应用一个函数,并通过mutate()函数将结果存储在一个新的列中。整个管道命令是mutate(model = map(, ~ lm())

      long %>% 
      
        mutate( map(data, ~ lm(returns ~ returns) 
      assets

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      我们现在有三列:之前的资产,之前的数据,以及我们刚刚添加的模型。模型一栏是我们对每项资产进行回归的结果lm( )。这些结果是我们每个资产的β值和截距。

      让我们用tidy()函数整理一下我们的结果。我们想将该函数应用于我们的模型列,并将再次使用mutate()和map()组合。

      mutate(model = map(data, ~ lm(returns ~ returns)) %>%
        mutate(model = map(model, tidy))

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      我们现在已经很接近了,但是模型栏里有嵌套的数据框。它们是格式化很好的数据框架。

      beta_assets$model

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      不过,我不喜欢最终出现嵌套的数据框架,所以我们调整模型列。

      mutate(model = map(data, ~ lm(returns ~returns)) %>%
      unnest(model)

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      现在,这看起来比较整洁。我们将做进一步的清理,去掉截距,因为我们需要贝塔值。

        mutate(map( ~ lm(returns ~ returns)) %>% 
        filter(term == "returns") %>%

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      快速检查应该发现SPY与自身的贝塔为1。

       

      bet %>% filter(asset == "SPY")

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      现在让我们看看我们对这些资产的组合如何影响投资组合的β值。

      让我们按照上面的选择来分配投资组合的权重。

      现在我们可以使用这些权重来获得我们的投资组合的β值,基于每个资产的β值。

        w[1] * beta$estimate[1] + 
        w[2] * beta$estimate[2] + 
        w[3] * beta$estimate[3] +
        w[4] * beta$estimate[4] +
        w[5] * beta$estimate[5]

       

      这个贝塔值与我们上面用协方差/方差法计算的是一样的,现在我们知道投资组合收益和市场收益的协方差除以市场收益的方差等于我们把每项资产的收益回归到市场收益上得到的加权估计。

      xts计算CAPM的Beta值

      使用内置CAPM.beta()函数。该函数需要两个参数:我们希望计算其β值的投资组合(或任何资产)的收益,以及市场收益。

       

       CAPM.beta(_monthly, returns_xts)

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      在Tidyverse中计算CAPM Beta

      首先,我们将使用dplyr来抓取我们的投资组合贝塔。我们稍后会进行一些可视化,但现在将提取投资组合的β值。

      为了计算贝塔值,我们调用do(model = lm())。然后我们使用tidy()函数,使模型结果更容易看懂。

      do(model = lm(returns ~return)) %>% 
        mutate(term = c("alpha", "beta"))

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      Tidyquant计算CAPM的β值

      使用tidyquant函数。能够将CAPM.beta()函数应用于一个数据框架。

        tq_performance(Ra = returns, 
                       Rb = return, 
                       performance_fun = CAPM.beta)

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      稳定的结果和接近1的贝塔值是比较理想的,因为我们的投资组合有25%分配给标准普尔500指数。

      CAPM beta的可视化

      在可视化之前,我们需要计算投资组合的收益,然后计算投资组合涉及到的单个资产的CAPMβ。

       

      可视化投资组合收益、风险和市场收益之间的关系

      CAPM的β值告诉我们投资组合收益与市场收益之间的线性关系。它还告诉我们投资组合的风险性--投资组合相对于市场的波动程度。在我们讨论贝塔系数本身之前,让我们先看看我们的资产的预期月度收益与我们个别资产的月度风险的对比。

        ggplot(aes(x = sdev, y = ex_return)) +
        geom_point(size = 2) +

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

       

      我们的投资组合在这个散点图上的位置如何?让我们用geom_point()把它添加到ggplot()中。

        ggplot(aes(x = stdev, y = expreturn)) +
        geom_point(size = 2) +
        geom_point(aes(x = sd(returns),

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

       

      我们的投资组合收益/风险看起来都不错,尽管SP500指数的预期收益率更高,只是风险更大一些。在过去的五年里,要战胜市场是很困难的。EEM和EFA有较高的风险和较低的预期收益,而IJS有较高的风险和较高的预期收益。

      一般来说,散点是为我们的投资组合提供一些收益-风险的背景。它不是CAPM的直接组成部分。

      接下来,让我们更直接地转向CAPM,用X轴上的市场收益和Y轴上的投资组合收益的散点图来直观地显示我们的投资组合与市场之间的关系。首先,我们将通过调用mutate()将市场收益添加到我们的投资组合tibble中。然后,我们用ggplot()设置我们的x轴和y轴。

        ggplot(aes(x = market_returns, y = returns)) + 
        geom_point() +

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      这个散点图与β计算传达了相同的强线性关系。我们可以用geom_smooth()给它添加一个简单的回归线。

      ggplot(aes(x = market_returns, y = returns)) + 
        geom_point() +
        geom_smooth(method = "lm") +

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

       

      线性回归

      在结束CAPM beta的分析之前,让我们来探讨一下如何创建更有趣的可视化数据。

      下面的代码块从lm()的模型结果开始,它将我们的投资组合收益率回归到市场收益率上。我们将结果存储在一个名为model的列表列中。接下来,我们调用augment(),将预测值添加到原始数据集,并返回一个tibble。

      这些预测值将被放在.fitted列中。

        do(model = lm(returns ~ returns)%>% 
        augment(model) %>% 
        mutate(date = date)
      head(portfolio_model)

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      让我们用ggplot()来看看拟合的收益值与实际收益值的匹配程度。

        ggplot(aes(x = date)) + 
        geom_line(aes(y = returns, color = "actual returns")) + 
        geom_line(aes(y = .fitted, color = "fitted returns")) +
        scale_colour_manual("",

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      这些月度收益和拟合值似乎重合得不错。让我们把实际收益和拟合收益都转换为一元的增长,并进行同样的比较。

        ggplot(aes(x = date)) + 
        geom_line(aes()) + 
        geom_line(aes)) +

      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

       

      我们的拟合增长很好地预测了我们的实际增长,尽管在大部分时间里,实际增长低于预测值。

       


      R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_14293657/2965672,作者:拓端tecdat,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:R语言如何在生存分析与Cox回归中计算IDI,NRI指标

      下一篇:通过初始时间和流逝的分钟数计算终止时间

      相关文章

      2024-08-09 11:08:51

      R语言实现基于随机森林的高光谱影像分类

      在Pavia University数据中选取100×100大小的影像和参考数据,选取30个样本作为训练样本,基于随机森林进行分类

      2024-08-09 11:08:51
      R语言 , 数据
      2024-08-08 09:32:16

      拓端tecdat|R语言代码编写用向量自回归(VAR)进行经济数据脉冲响应研究分析

      自从Sims(1980)发表开创性的论文以来,向量自回归模型已经成为宏观经济研究中的关键工具。这篇文章介绍了VAR分析的基本概念,并指导了简单模型的估算过程。 

      2024-08-08 09:32:16
      R语言 , 数据 , 数据集
      2024-08-08 09:32:16

      R语言混合效应模型(mixed model)案例研究|附代码数据

      在本文中,我们描述了灵活的竞争风险回归模型。回归模型被指定为转移概率,也就是竞争性风险设置中的累积发生率。

      2024-08-08 09:32:16
      R语言 , 数据 , 数据集
      2024-08-08 09:32:16

      R语言广义相加模型 (GAMs)分析预测CO2时间序列数据|附代码数据

      环境科学中的许多数据不适合简单的线性模型,最好用广义相加模型(GAM)来描述 。

      2024-08-08 09:32:16
      R语言 , 数据 , 数据集
      2024-08-08 09:32:16

      r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现|附代码数据

      Glmnet是一个通过惩罚最大似然关系拟合广义线性模型的软件包。正则化路径是针对正则化参数λ的值网格处的lasso或Elastic Net(弹性网络)惩罚值计算的 。

      2024-08-08 09:32:16
      R语言 , 数据 , 数据集
      2024-08-07 09:46:39

      R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例|附代码数据

      在最近的一篇文章中,我们展示了一个LSTM模型,通过假近邻(FNN)损失进行正则化,可以用来重建一个非线性动态系统。

      2024-08-07 09:46:39
      R语言 , 数据 , 数据集
      2024-08-07 09:46:39

      R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据

      在本文中,潜类别轨迹建模 (LCTM) 是流行病学中一种相对较新的方法,用于描述生命过程中的暴露,它将异质人群简化为同质模式或类别。然而,对于给定的数据集,可以根据类的数量、模型结构和轨迹属性得出不同模型的分数。

      2024-08-07 09:46:39
      R语言 , 数据 , 数据集
      2024-08-07 09:46:39

      数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化|附代码数据

      在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)。但在实际生活中,有更多的观察值,更多的解释变量。随着两个以上的解释变量,它开始变得更加复杂的可视化。

      2024-08-07 09:46:39
      R语言 , 数据 , 数据集
      2024-08-07 09:46:39

      数据分享|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据

      在本文中,潜类别轨迹建模 (LCTM) 是流行病学中一种相对较新的方法,用于描述生命过程中的暴露,它将异质人群简化为同质模式或类别。然而,对于给定的​​数据集​​,可以根据类的数量、模型结构和轨迹属性得出不同模型的分数。

      2024-08-07 09:46:39
      R语言 , 数据 , 数据集
      2024-08-07 09:46:39

      R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测|附代码数据

      最近我们被客户要求撰写关于信贷数据的研究报告,包括一些图形和统计输出。在本文中,我们使用了逻辑回归、决策树和随机森林模型来对信用数据集进行分类预测并比较了它们的性能。

      2024-08-07 09:46:39
      R语言 , 数据 , 数据集
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5238899

      查看更多

      热门标签

      系统 测试 用户 分布式 Java java 计算机 docker 代码 数据 服务器 数据库 源码 管理 python
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号