本篇文章將總結時間序列預測方法,並將所有方法分類介紹並提供相應的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