【数学建模】(时间序列模型)ARIMA时间序列模型

缠丝猫  论坛元老 | 2025-4-7 13:46:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1601|帖子 1601|积分 4803

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ARIMA时间序列模型详解及常见时间序列模型概览


  
1 弁言

时间序列分析在数据科学中占据重要职位,广泛应用于金融、经济、气象等领域。本文将具体介绍ARIMA模型的基本原理和应用,并简要概述其他常见的时间序列模型,资助读者了解时间序列分析的全貌。
2 ARIMA模型的基本概念

ARIMA模型全称为自回归差分移动匀称模型(AutoRegressive Integrated Moving Average),由三部门构成:


  • AR (AutoRegressive): 自回归部门
  • I (Integrated): 差分部门
  • MA (Moving Average): 移动匀称部门
通常体现为ARIMA(p,d,q),其中:


  • p: 自回归项数
  • d: 差分次数
  • q: 移动匀称项数
ARIMA模型的基本头脑是利用数据本身的汗青信息来预测未来。一个时间点上的标签值既受过去一段时间内的标签值影响,也受过去一段时间内的偶然事件的影响,这就是说,ARIMA模型假设:标签值是围绕着时间的大趋势而波动的,其中趋势是受汗青标签影响构成的,波动是受一段时间内的偶然事件影响构成的,且大趋势本身不一定是稳定的。
简而言之,ARIMA模型就是试图通过数据的自相关性和差分的方式,提取出隐藏在数据背后的时间序列模式,然后用这些模式来预测未来的数据。其中:

  • AR部门用于处理时间序列的自回归部门,它考虑了过去若干时期的观测值对当前值的影响。
  • I部门用于使非平稳时间序列到达平稳,通过一阶或者二阶等差分处理,消除了时间序列中的趋势和季候性因素。
  • MA部门用于处理时间序列的移动匀称部门,它考虑了过去的预测偏差对当前值的影响。
结合这三部门,ARIMA模型既可以捕捉到数据的趋势变化,又可以处理那些有临时、突发的变化或者噪声较大的数据。以是,ARIMA模型在很多时间序列预测问题中都有很好的体现。
3 ARIMA模型的构成部门详解

3.1 AR模型 (自回归模型)

AR模型,即自回归模型,其优势是对于具有较长汗青趋势的数据,AR模型可以捕获这些趋势,并据此举行预测。但是AR模型不能很好地处理某些范例的时间序列数据,比方那些有临时、突发的变化或者噪声较大的数据。AR模型信任“汗青决定未来”,因此很大水平上忽略了现实情况的复杂性、也忽略了真正影响标签的因子带来的不可预料的影响。
AR§模型假设当前值与过去p个时间点的值线性相关。数学表达式为:
                                                    X                               t                                      =                            c                            +                                       ϕ                               1                                                 X                                           t                                  −                                  1                                                 +                                       ϕ                               2                                                 X                                           t                                  −                                  2                                                 +                            .                            .                            .                            +                                       ϕ                               p                                                 X                                           t                                  −                                  p                                                 +                                       ε                               t                                            X_t = c + \phi_1 X_{t-1} + \phi_2 X_{t-2} + ... + \phi_p X_{t-p} + \varepsilon_t                     Xt​=c+ϕ1​Xt−1​+ϕ2​Xt−2​+...+ϕp​Xt−p​+εt​
其中:


  •                                                    X                               t                                            X_t                     Xt​ 是t时候的值
  •                                         c                                  c                     c 是常数项
  •                                                    ϕ                               1                                      ,                                       ϕ                               2                                      ,                            .                            .                            .                            ,                                       ϕ                               p                                            \phi_1, \phi_2, ..., \phi_p                     ϕ1​,ϕ2​,...,ϕp​ 是模型参数
  •                                                    ε                               t                                            \varepsilon_t                     εt​ 是白噪声
3.2 MA模型 (移动匀称模型)

相反地,MA模型,即移动匀称模型,可以更好地处理那些有临时、突发的变化或者噪声较大的时间序列数据。但是对于具有较长汗青趋势的数据,MA模型可能无法像AR模型那样捕捉到这些趋势。MA模型信任“时间序列是相对稳定的,时间序列的波动是由偶然因素影响决定的”,但现实中的时间序列很难不停维持“稳定”这一假设。
(P.S. ARIMA模型是一种结合了AR模型和MA模型优点的模型,可以处理更复杂的时间序列问题。参考资料:时间序列模型(四):ARIMA模型)
MA(q)模型假设当前值与过去q个预测偏差项线性相关。数学表达式为:
                                                    X                               t                                      =                            μ                            +                                       ε                               t                                      +                                       θ                               1                                                 ε                                           t                                  −                                  1                                                 +                                       θ                               2                                                 ε                                           t                                  −                                  2                                                 +                            .                            .                            .                            +                                       θ                               q                                                 ε                                           t                                  −                                  q                                                       X_t = \mu + \varepsilon_t + \theta_1 \varepsilon_{t-1} + \theta_2 \varepsilon_{t-2} + ... + \theta_q \varepsilon_{t-q}                     Xt​=μ+εt​+θ1​εt−1​+θ2​εt−2​+...+θq​εt−q​
其中:


  •                                         μ                                  \mu                     μ 是期望值
  •                                                    ε                               t                                            \varepsilon_t                     εt​ 是白噪声
  •                                                    θ                               1                                      ,                                       θ                               2                                      ,                            .                            .                            .                            ,                                       θ                               q                                            \theta_1, \theta_2, ..., \theta_q                     θ1​,θ2​,...,θq​ 是模型参数
3 I (差分)

差分操纵用于使非平稳时间序列转化为平稳序列(P.S. GNSS中的周跳检测)。d阶差分定义为:
                                                    ∇                               d                                                 X                               t                                      =                            (                            1                            −                            B                                       )                               d                                                 X                               t                                            \nabla^d X_t = (1-B)^d X_t                     ∇dXt​=(1−B)dXt​
其中B是后移算子,                                   B                                   X                            t                                  =                                   X                                       t                               −                               1                                                 B X_t = X_{t-1}                  BXt​=Xt−1​。
4 ARIMA模型的建模步调


  • 平稳性检验:使用ADF检验等方法检验时间序列是否平稳
  • 差分处理:如果序列非平稳,举行差分直到序列平稳
  • 模型辨认:通过ACF和PACF图确定合适的p、q值
  • 模型拟合:估计模型参数
  • 模型诊断:检验残差是否为白噪声
  • 模型预测:使用拟合好的模型举行预测
5 Python实现ARIMA模型

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. from statsmodels.tsa.stattools import adfuller
  5. from statsmodels.tsa.arima.model import ARIMA
  6. from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
  7. # 加载数据
  8. data = pd.read_csv('data.csv', index_col='date', parse_dates=True)
  9. ts = data['value']
  10. # 平稳性检验
  11. def test_stationarity(timeseries):
  12.     # ADF检验
  13.     dftest = adfuller(timeseries, autolag='AIC')
  14.     dfoutput = pd.Series(dftest[0:4], index=['Test Statistic','p-value','#Lags Used','Number of Observations Used'])
  15.     for key, value in dftest[4].items():
  16.         dfoutput['Critical Value (%s)'%key] = value
  17.     print(dfoutput)
  18. # 差分处理
  19. ts_diff = ts.diff().dropna()
  20. # 模型拟合
  21. model = ARIMA(ts, order=(1, 1, 1))  # ARIMA(p,d,q)
  22. model_fit = model.fit()
  23. print(model_fit.summary())
  24. # 模型预测
  25. forecast = model_fit.forecast(steps=10)  # 预测未来10个时间点
复制代码
6 常见时间序列模型概览

除了ARIMA模型外,时间序列分析还有很多其他模型,以下是一些常见的时间序列模型:
1. 简朴时间序列模型



  • 简朴匀称模型:使用汗青数据的匀称值作为预测值
  • 质朴模型(Naive Method):使用最近一期的观测值作为预测值
  • 季候性子朴模型:使用上一个季候周期对应时间点的值作为预测值
  • 移动匀称模型:使用过去n个时间点的匀称值作为预测值
2. 指数平滑模型



  • 简朴指数平滑(SES):实用于无趋势、无季候性的数据
                                                                                  y                                        ^                                                                t                                        +                                        1                                                           =                                  α                                               y                                     t                                              +                                  (                                  1                                  −                                  α                                  )                                                             y                                        ^                                                  t                                                      \hat{y}_{t+1} = \alpha y_t + (1-\alpha)\hat{y}_t                           y^​t+1​=αyt​+(1−α)y^​t​
  • Holt线性趋势模型:实用于有趋势、无季候性的数据
    KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \hat{y}_{t+h} …
  • Holt-Winters季候性模型:实用于有趋势、有季候性的数据

    • 加法形式和乘法形式

3. ARIMA族模型



  • SARIMA:季候性ARIMA,处理具有季候性的时间序列
                                                       S                                  A                                  R                                  I                                  M                                  A                                  (                                  p                                  ,                                  d                                  ,                                  q                                  )                                  (                                  P                                  ,                                  D                                  ,                                  Q                                               )                                     s                                                      SARIMA(p,d,q)(P,D,Q)_s                           SARIMA(p,d,q)(P,D,Q)s​
  • ARIMAX:带外生变量的ARIMA模型
                                                                    X                                     t                                              =                                  c                                  +                                               ϕ                                     1                                                           X                                                   t                                        −                                        1                                                           +                                  .                                  .                                  .                                  +                                               ϕ                                     p                                                           X                                                   t                                        −                                        p                                                           +                                               β                                     1                                                           Z                                                   1                                        ,                                        t                                                           +                                  .                                  .                                  .                                  +                                               β                                     k                                                           Z                                                   k                                        ,                                        t                                                           +                                               ε                                     t                                              +                                               θ                                     1                                                           ε                                                   t                                        −                                        1                                                           +                                  .                                  .                                  .                                  +                                               θ                                     q                                                           ε                                                   t                                        −                                        q                                                                   X_t = c + \phi_1 X_{t-1} + ... + \phi_p X_{t-p} + \beta_1 Z_{1,t} + ... + \beta_k Z_{k,t} + \varepsilon_t + \theta_1 \varepsilon_{t-1} + ... + \theta_q \varepsilon_{t-q}                           Xt​=c+ϕ1​Xt−1​+...+ϕp​Xt−p​+β1​Z1,t​+...+βk​Zk,t​+εt​+θ1​εt−1​+...+θq​εt−q​
  • VARIMA:向量ARIMA,处理多变量时间序列
  • GARCH:广义自回归条件异方差模型,用于建模波动性
                                                                    σ                                     t                                     2                                              =                                  ω                                  +                                               ∑                                                   i                                        =                                        1                                                  p                                                           α                                     i                                                           ε                                                   t                                        −                                        i                                                  2                                              +                                               ∑                                                   j                                        =                                        1                                                  q                                                           β                                     j                                                           σ                                                   t                                        −                                        j                                                  2                                                      \sigma_t^2 = \omega + \sum_{i=1}^{p} \alpha_i \varepsilon_{t-i}^2 + \sum_{j=1}^{q} \beta_j \sigma_{t-j}^2                           σt2​=ω+i=1∑p​αi​εt−i2​+j=1∑q​βj​σt−j2​
4. 状态空间模型



  • 卡尔曼滤波:递归估计动态系统状态的算法
  • 结构时间序列模型:将时间序列分解为趋势、季候性和不规则成分
5. 机器学习和深度学习模型



  • Prophet:Facebook开发的时间序列预测工具,适合处理具有强季候性的数据
  • LSTM (长短期记忆网络):一种特殊的RNN,可以或许学习长期依赖关系
  • GRU (门控循环单元):LSTM的简化版本,计算效率更高
  • Transformer:基于注意力机制的模型,近年来在时间序列预测中体现出色
  • N-BEATS:纯深度学习方法,不依赖于传统的时间序列分解
7 ARIMA模型的优缺点

优点


  • 理论底子扎实,模型简朴易懂
  • 实用于大多数线性时间序列问题
  • 预测短期趋势效果较好
  • 模型解释性强
缺点


  • 只实用于平稳或可通过差分转化为平稳的时间序列
  • 对非线性关系的建模能力有限
  • 须要较长的汗青数据才气得到较好的效果
  • 不适合处理具有长期记忆特性的序列
8 如何选择合适的时间序列模型

选择时间序列模型时,须要考虑以下因素:

  • 数据特性:是否存在趋势、季候性、周期性
  • 预测时间范围:短期预测和长期预测适合的模型不同
  • 数据量:深度学习模型通常须要更多的数据
  • 解释性需求:是否须要明白模型的内部机制
  • 计算资源:复杂模型须要更多的计算资源
9 结论

ARIMA作为经典的时间序列分析模型,在很多场景下仍旧体现良好。随着机器学习和深度学习的发展,时间序列分析工具箱不断丰富,为不同的应用场景提供了更多选择。在现实应用中,应根据具体问题特点选择合适的模型,有时候甚至可以将多种模型结合使用,以得到更好的预测效果。
参考资料


  • Box, G. E. P., & Jenkins, G. M. (1976). Time Series Analysis: Forecasting and Control.
  • Hyndman, R. J., & Athanasopoulos, G. (2018). Forecasting: Principles and Practice.
  • statsmodels官方文档: https://www.statsmodels.org/
  • 时间序列模型(四):ARIMA模型

盼望这篇文章对您了解ARIMA和其他时间序列模型有所资助!如有任何问题,欢迎在批评区留言交流。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表