ARIMA-GARCH预测(Python)

2025年1月4日 | 阅读 4 分钟

Python 是一种高级、解释型编程语言,以其简洁和清晰而闻名。Python 由 Guido van Rossum 创建,并于 1991 年首次发布,它强调代码可读性和语法,使程序员能够用比 C++ 或 Java 等语言更少的代码行来表达标准。它支持多种编程范式,包括过程式、面向对象和函数式编程。

Python 庞大的标准库和第三方程序的强大生态系统使其适用于从 Web 开发和数据分析到人工智能和科学计算的各种应用。该语言的动态类型和自动内存管理功能使其易于使用,使其成为初学者和经验丰富的开发人员的热门选择。Python 的社区驱动开发确保了持续的更新和跨各种平台的广泛支持。

ARIMA-GARCH

ARIMA-GARCH 预测是两种模型的组合,旨在提高时间序列预测的准确性,主要用于具有波动性聚集性的金融数据。

ARIMA(自回归积分移动平均)

ARIMA 模型用于通过说明数据中的自相关性来识别和预测时间序列的未来点。

组成部分

  • AR(自回归):模型的一部分解释了当前观测值与几个滞后观测值(先前的真实数据点)之间的关系。
  • I(积分):此部分涉及对原始观测值进行差分以使时间序列平稳,这意味着其统计属性(如均值和方差)随时间保持不变。
  • MA(移动平均):此部分模拟当前观测值与应用于滞后观测值的移动平均模型中的残差误差之间的关系。

GARCH(广义自回归条件异方差)

GARCH 模型用于对时间序列的波动性进行建模和预测,该波动性可能随时间变化。

组成部分

  • GARCH:它将序列的当前方差(波动性)解释为过去误差(收益或残差)和过去方差的函数。

结合 ARIMA 和 GARCH

  • 拟合 ARIMA 模型:首先将 ARIMA 模型拟合到时间序列数据。该模型捕捉了序列的线性结构。
  • 提取残差:拟合 ARIMA 模型后,提取残差(误差)。这些残差代表了 ARIMA 模型无法解释的时间序列的一部分。
  • 拟合 GARCH 模型:将 GARCH 模型应用于残差,以对时间序列中的波动性聚集进行建模。
  • 预测
    • 均值预测:使用 ARIMA 模型预测时间序列的均值。
    • 波动性预测:使用 GARCH 模型预测未来波动性。
  • 组合预测:结合 ARIMA 均值预测和 GARCH 波动性预测,以获得包含预期值及其相关波动性的综合预测。

好处

  • 捕获均值和波动性:通过结合 ARIMA 和 GARCH,该模型可以有效地捕捉数据的隐含结构和波动性,从而实现更准确的预测。
  • 适用性:此方法在金融时间序列预测中尤其有用,其中资产价格的波动性经常随时间变化。

应用

这种组合方法广泛应用于金融市场,用于风险管理、期权定价和算法交易等任务,在这些任务中,理解预期收益及其波动性至关重要。

示例

输出

 
ARIMA Mean Forecast:
 19.3284217264986
GARCH Volatility Forecast:
 [0.98607856 0.98607858 0.98607861 0.98607863 0.98607866 0.98607868
 0.98607871 0.98607873 0.98607876 0.98607878]
Combined Forecast:
 [20.31450028 20.31450031 20.31450034 20.31450036 20.31450039 20.31450041
 20.31450044 20.31450046 20.31450048 20.31450051]   

ARIMA-GARCH Forecasting in Python

说明

  • 导入库
    • 导入用于数据处理(`pandas`、`numpy`)、建模(`statsmodels`、`arch`)和绘图(`matplotlib`)的必要库。
  • 生成合成数据
    • 为了演示目的,使用随机游走模型生成了人工时间序列数据。
  • 拟合 ARIMA 模型
    • 将 ARIMA 阶数(p, d, q)定义为 (1, 1, 1)。
    • 将 ARIMA 模型拟合到时间序列数据。
    • 从 ARIMA 模型拟合中提取残差,以便可以用于拟合 GARCH 模型。
  • 拟合 GARCH 模型
    • 定义并拟合 GARCH(1, 1) 模型到 ARIMA 残差,以对波动性进行建模。
  • 预测
    • 使用 ARIMA 模型预测时间序列的隐含值。
    • 使用 GARCH 模型预测波动性(标准差)。
    • 结合 ARIMA 均值预测和 GARCH 波动性预测,得到最终预测。
  • 输出
    • 打印 ARIMA 均值预测、GARCH 波动性预测和组合预测。
  • 可视化
    • 绘制实际时间序列、ARIMA 拟合、ARIMA 均值预测和预测波动性,以可视化结果。