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
from statsmodels.tsa.holtwinters import SimpleExpSmoothing
from random import random
# contrived dataset
data = [x + random() for x in range(1, 100)]
# fit model
model = SimpleExpSmoothing(data)
model_fit = model.fit()
# make prediction
yhat = model_fit.predict(len(data), len(data))
print(yhat)
完整文章:
https://www.overfit.cn/post/48b9c34c2b8c4a938e838d3c3616e789