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

如何在R中用rucm包实现不可观测成分模型分析股票收益季节性

用R的rucm包检验股票收益的日度/月度季节性影响

看起来你想通过不可观测成分模型(UCM)拆解股票日度收益的季节性,验证周内效应和月度效应是否存在——用rucm包确实是个不错的选择,它能帮你把时间序列拆成趋势、季节性和随机扰动几个部分,刚好匹配你的需求。下面是一步步的实现方案:

一、准备工作:安装并加载依赖包

首先得安装rucm包(专门做不可观测成分模型的工具),还有lubridate用来处理日期数据——毕竟我们要从时间戳里提取周几和月份:

# 首次运行需安装包
install.packages(c("rucm", "lubridate", "dplyr"))

# 加载所需包
library(rucm)
library(lubridate)
library(dplyr)

二、数据预处理:提取季节性特征

你的数据集是带时间戳的日度收益数据,先把时间戳转成可读的日期格式,再提取周几和年度月份这两个关键的季节性变量:

# 假设你的数据框名为stock_data,转换Date列为日期时间格式
stock_data$Date <- as_datetime(stock_data$Date)

# 提取带标签的周几和月份(方便后续解读)
stock_data <- stock_data %>%
  mutate(
    weekday = wday(Date, label = TRUE, abbr = TRUE), # 周几缩写,如Mon/Tue
    month = month(Date, label = TRUE, abbr = TRUE)   # 月份缩写,如Jan/Feb
  )

# 转换为rucm兼容的时间序列对象(交易日一年约252天,设置对应频率)
returns_ts <- ts(stock_data$returns, frequency = 252)

三、构建模型检验季节性

rucm的核心函数是ucm(),我们可以分三种场景建模,分别验证不同维度的季节性:

场景1:单独检验周内(日度)季节性

周内交易日的季节性频率是5(周一到周五),用虚拟变量类型的季节性建模,能直接看到每个周几的效应:

# 构建仅含周内季节性的UCM
ucm_weekday <- ucm(
  formula = returns ~ 0, # 不加入固定效应,仅提取不可观测成分
  data = returns_ts,
  season = list(frequency = 5, type = "dummy") # 频率5对应周内,dummy生成虚拟变量
)

# 查看模型结果
summary(ucm_weekday)

解读:看输出的Seasonal Component部分,如果季节性成分的标准差(Std.Dev)显著不为0(t值绝对值>2或p值<0.05),说明周内季节性确实存在。

场景2:单独检验月度季节性

月度季节性的频率是12(一年12个月),同样用虚拟变量建模:

# 构建仅含月度季节性的UCM
ucm_month <- ucm(
  formula = returns ~ 0,
  data = returns_ts,
  season = list(frequency = 12, type = "dummy") # 频率12对应月度
)

summary(ucm_month)

解读:和周内检验逻辑一致,通过季节性成分的显著性指标判断月度季节性是否存在。

场景3:同时检验两种季节性

如果想同时控制周几和月份的影响,还可以把它们作为固定效应加入模型,同时提取趋势和随机扰动:

# 同时纳入周几、月份固定效应的UCM
ucm_combined <- ucm(
  formula = returns ~ weekday + month,
  data = stock_data,
  trend = TRUE,  # 提取趋势成分
  irregular = TRUE # 提取随机扰动成分
)

summary(ucm_combined)

解读:看输出Fixed Effects部分的系数p值——如果某个周几/月份的p值<0.05,说明该类别对收益有显著影响。

四、额外小贴士

  • 如果数据包含非交易日(周末、节假日),记得先过滤掉,只保留交易日数据,避免季节性频率混乱。
  • rucm的季节性类型除了dummy,还有trigonometric(三角多项式),但周几/月份是离散分类,dummy更直观合适。
  • 可以用plot(ucm_weekday)可视化分解后的趋势、季节性和残差,更直观观察季节性模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:38:15