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

如何计算波动率?基于BigVAR包的实操困惑与数据说明

问题:参考BigVAR示例代码无法计算波动率
  • 数据背景:拥有不含日期的日度时间序列数据,共2425个观测值,时间跨度10年,年均交易日252天
  • 参考的示例代码:
# BigVAR包在自带波动率数据上的使用示例
library(BigVAR)
## 加载必需包:lattice
data(volatilities)
big_var_est <- function(data) {
    Model1 = constructModel(as.matrix(data), p = 4, struct = "Basic", gran = c(50, 50), VARX = list(), verbose = F)
    Model1Results = cv.BigVAR(Model1)
}
# 执行估计
oo <- big_var_est(log(volatilities[apply(volatilities>0, 1, all),]))
  • 问题现象:按照上述示例步骤操作后,未得到预期的波动率结果,相关运行界面截图如下:
    [截图:代码运行后的终端界面,无有效波动率输出]

排查与解决建议

  1. 数据预处理校验

    • 检查数据是否全为正值:示例代码仅对全正的行取对数,先运行sum(your_data <= 0)确认是否存在0或负值,若有,可替换为极小值(如your_data[your_data <= 0] <- 1e-8)或删除对应行。
    • 确认数据格式:确保输入数据是数值型矩阵或数据框,无字符型、因子型数据混入,可通过str(your_data)查看。
  2. 模型参数适配调整

    • 滞后阶数p:示例用p=4,可通过vars::VARselect(your_data)确定适合数据的最优滞后阶数后替换。
    • 粒度参数gran:示例设置c(50,50),若你的数据维度较小,可尝试调整为c(20,20)或c(30,30);维度大则可增大数值。
    • 模型结构:尝试切换为"HLag"或"Pooled"结构,修改struct参数后重新运行。
  3. 结果提取方法

    • cv.BigVAR返回的结果对象需要主动提取预测值,运行predict(Model1Results)可得到波动率预测结果;也可通过Model1Results$beta查看模型系数,结合原始数据计算波动率。

内容的提问来源于stack exchange,提问作者MOGHIS UR REHMAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:40:36