10 简单指数平滑 (SES)
简单指数平滑 (SES) 方法将下一个时间步建模为先前时间步观测值的指数加权线性函数。
该方法适用于没有趋势和季节性成分的单变量时间序列。
定义
指数平滑的最简单形式由以下公式给出:
式中 是平滑因子,并且 。换句话说,平滑的统计量 是当前观测值的简单加权平均值 和之前的平滑统计 。简单的指数平滑很容易应用,只要有两个观测值,它就会生成平滑的统计量。
平滑因子 具有较大的值,实际上降低平滑水平,并在极限情况下 输出系列只是当前的观察结果。
-
的值接近 1 的平滑效果较小,并且对数据中最近的变化给予更大的权重。
-
而 值 接近于零,具有更大的平滑效果并且对最近的变化的响应更小。
指数平滑是一种利用指数窗函数平滑时间序列数据的经验法则。而在简单的移动平均中,过去的观测值的权重是相等的。指数函数被用来分配随着时间呈指数递减的权重。
指数平滑是信号处理中常用的平滑数据的窗口函数之一,作为低通滤波器去除高频噪声。
更多内容可参见维基百科上的指数平滑[7]
Python代码
# SES example
from statsmodels.tsa.holtwinters import SimpleExpSmoothing
from random import random
# contrived dataset
data = [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)
11 霍尔特·温特的指数平滑(HWES)
Holt Winter 的指数平滑(HWES)也称为三次指数平滑方法,将下一个时间步长建模为先前时间步长的观测值的指数加权线性函数,并考虑趋势和季节性。
该方法适用于具有趋势和/或季节性分量的单变量时间序列。
Python代码
# HWES example
from statsmodels.tsa.holtwinters import ExponentialSmoothing
from random import random
# contrived dataset
data = [x + random() for x in range(1, 100)]
# fit model
model = ExponentialSmoothing(data)
model_fit = model.fit()
# make prediction
yhat = model_fit.predict(len(data), len(data))