You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的dataframe中基于列值条件计算个股周度beta值

R计算个股周度beta值解决方案
  • 第一步:提取基准市场收益率
    你数据中的SP500应和个股数据保存在同一张表的asset列中,假设SP500对应的asset标记为SP500,可替换为你实际的取值:
library(dplyr)
# 提取SP500的日度收益率数据
mkt_ret <- df %>%
  filter(asset == "SP500") %>%
  select(date, week, mkt_ret = ret)
  • 第二步:匹配个股与市场日度收益率
# 剔除SP500本身的行,将个股日度收益率和对应日期的市场收益率匹配
stock_ret <- df %>%
  filter(asset != "SP500") %>%
  left_join(mkt_ret, by = c("date", "week"))
  • 第三步:按个股+周度分组计算beta
weekly_beta <- stock_ret %>%
  group_by(asset, week) %>%
  # 可选过滤:周内交易日不少于3天,避免计算结果失真,可自行调整阈值
  filter(n() >= 3) %>%
  summarize(
    weekly_beta = cov(ret, mkt_ret, use = "complete.obs") / var(mkt_ret, use = "complete.obs"),
    .groups = "drop"
  )

注意:如果你的数据包含多个自然年,建议在生成周标识时同时关联年份,例如使用lubridate包生成year_week = paste(year(date), week, sep = "_"),分组时用asset和year_week作为分组字段,避免不同年份的同一周被合并计算。
use = "complete.obs"参数会自动跳过有缺失值的日期,避免计算报错。

内容的提问来源于stack exchange,提问作者Nish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:06:02