时间序列预测模型有哪些类型方法,4类11种时间

本篇文章将所以时间序列预测方法,并将所有方法分类介绍并提供相应的python代码示例,以下是本文将要介绍的方法列表:
1、使用平滑技术进行时间序列预测
- 指数平滑
- Holt-Winters 法
2、单变量时间序列预测
- 自回归 (AR)
- 移动平均模型 (MA)
- 自回归滑动平均模型 (ARMA)
- 差分整合移动平均自回归模型 (ARIMA)
- 季节性 ARIMA (SARIMA)
3、外生变量的时间序列预测
- 包含外生变量的SARIMAX (SARIMAX)
- 具有外生回归量的向量自回归移动平均 (VARMAX)
4、多元时间序列预测
- 向量自回归 (VAR)
- 向量自回归移动平均 (VARMA)
下面我们对上面的方法一一进行介绍,并给出python的代码示例
1、指数平滑Exponential Smoothing
指数平滑法是过去观测值的加权平均值,随着观测值变老,权重呈指数会衰减。换句话说,观察时间越近相关权重就越高。它可以快速生成可靠的预测,并且适用于广泛的时间序列。
简单指数平滑:此方法适用于预测没有明确趋势或季节性模式的单变量时间序列数据。简单指数平滑法将下一个时间步建模为先前时间步的观测值的指数加权线性函数。
它需要一个称为 alpha (a) 的参数,也称为平滑因子或平滑系数,它控制先前时间步长的观测值的影响呈指数衰减的速率,即控制权重减小的速率。 a 通常设置为 0 和 1 之间的值。较大的值意味着模型主要关注最近的过去观察,而较小的值意味着在进行预测时会考虑更多的历史。简单指数平滑时间序列的简单数学解释如下所示:
# SES examplefromstatsmodels.tsa.holtwinters import SimpleExpSmoothingfromrandom import random# contrived datasetdata= [x + random() for x in range(1, 100)]# fit modelmodel= SimpleExpSmoothing(data)model_fit= model.fit()# make predictionyhat= model_fit.predict(len(data), len(data))print(yhat)
2、Holt-Winters 法
在 1957 年初,Holt扩展了简单的指数平滑法,使它可以预测具有趋势的数据。这种被称为 Holt 线性趋势的方法包括一个预测方程和两个平滑方程(一个用于水平,一个用于趋势)以及相应的平滑参数 α 和 β。后来为了避免趋势模式无限重复,引入了阻尼趋势法,当需要预测许多序列时,它被证明是非常成功和最受欢迎的单个方法。除了两个平滑参数之外,它还包括一个称为阻尼参数 φ 的附加参数。
一旦能够捕捉到趋势,Holt-Winters 法扩展了传统的Holt法来捕捉季节性。 Holt-Winters 的季节性方法包括预测方程和三个平滑方程——一个用于水平,一个用于趋势,一个用于季节性分量,并具有相应的平滑参数 α、β 和 γ。
此方法有两种变体,它们在季节性成分的性质上有所不同。当季节变化在整个系列中大致恒定时,首选加法方法,而当季节变化与系列水平成比例变化时,首选乘法方法。
# HWES examplefromstatsmodels.tsa.holtwinters import ExponentialSmoothingfromrandom import random# contrived datasetdata= [x + random() for x in range(1, 100)]# fit modelmodel= ExponentialSmoothing(data)model_fit= model.fit()# make predictionyhat= model_fit.predict(len(data), len(data))print(yhat)
3、自回归 (AR)
在 AR 模型中,我们使用变量过去值的线性组合来预测感兴趣的变量。 术语自回归表明它是变量对自身的回归。 AR模型的简单数学表示如下:
这里,εt 是白噪声。 这类似于多元回归,但是使用 yt 的滞后值作为预测变量。 我们将其称为 AR(p) 模型,即 p 阶的自回归模型。
fromstatsmodels.tsa.ar_model import AutoRegfromrandom import random# contrived datasetdata= [x + random() for x in range(1, 100)]# fit modelmodel= AutoReg(data, lags=1)model_fit= model.fit()# make predictionyhat= model_fit.predict(len(data), len(data))print(yhat)
4、移动平均模型(MA)
与在回归中使用预测变量的过去值的 AR 模型不同,MA 模型在类似回归的模型中关注过去的预测误差或残差。 MA模型的简单数学表示如下:
这里,εt 是白噪声。 我们将其称为 MA(q) 模型,即 q 阶移动平均模型。
# MA examplefromstatsmodels.tsa.arima.model import ARIMAfromrandom import random# contrived datasetdata= [x + random() for x in range(1, 100)]# fit modelmodel= ARIMA(data, order=(0, 0, 1))model_fit= model.fit()# make predictionyhat= model_fit.predict(len(data), len(data))print(yhat)
需要说明的是不应将这里说的移动平均线方法与计算时间序列的移动平均线混淆,因为两者是不同的概念。
5、自回归滑动平均模型 (ARMA)
在 AR 模型中,我们使用变量过去值与过去预测误差或残差的线性组合来预测感兴趣的变量。 它结合了自回归 (AR) 和移动平均 (MA) 模型。
AR 部分涉及对变量自身的滞后(即过去)值进行回归。 MA部分涉及将误差项建模为在过去不同时间同时发生的误差项的线性组合。 模型的符号涉及将 AR(p) 和 MA(q) 模型的顺序指定为 ARMA 函数的参数,例如 ARMA(p,q)。 ARMA 模型的简单数学表示如下所示:
# ARMA examplefromstatsmodels.tsa.arima.model import ARIMAfromrandom import random# contrived datasetdata= [random() for x in range(1, 100)]# fit modelmodel= ARIMA(data, order=(2, 0, 1))model_fit= model.fit()# make predictionyhat= model_fit.predict(len(data), len(data))print(yhat)
6、差分整合移动平均自回归模型 (ARIMA)
如果我们将差分与自回归和移动平均模型相结合,我们将获得 ARIMA 模型。 ARIMA 是差分整合移动平均自回归模型Autoregressive Integrated Moving Average model 的首字母缩写。 它结合了自回归 (AR) 和移动平均模型 (MA) 以及为了使序列平稳而对序列的差分预处理过程,这个过程称为积分(I)。 ARIMA 模型的简单数学表示如下:
其中 y′t 是差分级数。 右侧的“预测变量”包括滞后值和滞后误差。 我们称之为 ARIMA(p,d,q) 模型。
这里,p 是自回归部分的阶数,d 是所涉及的一阶差分程度,q 是移动平均部分的阶数。
ACF 和 PACF 图在求 p 和 q 阶中的意义:
- 为了找到 AR(p) 模型的阶 p:我们预计 ACF 图会逐渐减小,同时 PACF 在 p 显着滞后后会急剧下降或切断。
- 为了找到 MA(q) 模型的阶 p:我们预计 PACF 图将逐渐减小,同时 ACF 应该在某些 q 显着滞后后急剧下降或切断。
# ARIMA examplefromstatsmodels.tsa.arima.model importARIMA fromrandom importrandom # contrived datasetdata = [x + random() forx inrange(1, 100)] # fit modelmodel = ARIMA(data, order=(1, 1, 1)) model_fit = model.fit() # make predictionyhat = model_fit.predict(len(data), len(data), typ=’levels’


下一篇:没有了
相关文章:


