序
- 如果我们希望基于时间序列对用当前已有的数据来预测其之后的走势,我们来比较多种算法优劣,并着重说说三次指数平滑算法。
- 时间序列一般有以下两个特性:
- 趋势:指的是时间序列的整体走势,比如总体上升或者总体下降。
- 季节性:指的是数据的周期性波动,比如以年或周为周期。
- 三次指数平滑算法可以对同时含有趋势和季节性的时间序列进行预测,该算法是基于一次指数平滑和二次指数平滑算法的。
移动平均(Simple moving Average(SMA))
-
我们先来看些简单的算法,我们定义一个窗口,其大小为k,那么这个移动指的就是窗口在时间轴上移动。
-
我们假设窗口函数为f,要预测第t秒的数据,且已知t秒前k个数据,那么第t秒的预测公式为:
s t = 1 k ∑ i = 0 k − 1 f t − i = f t + f t − 1 + . . . + f t − k + 1 k = s t − 1 + f t − f t − k k s_t=\frac{1}{k}\sum_{i=0}^{k-1}f_{t-i}=\frac{f_{t}+f_{t-1}+...+f_{t-k+1}}{k}=s_{t-1}+\frac{f_{t}-f_{t-k}}{k} st=k1∑i=0k−1ft−i=kft+ft−1+...+ft−k+1=st−1+kft−ft−k
-
这样做有几个明显的缺陷:
- 计算复杂耗时
- 移动平均值永远不可能运用于现有的数据集边缘的数据,因为它们的窗口是有限的。然而数据集边缘的变化通常都是我们最感兴趣的部分。
- 不能运用于现有数据集的范围之外,因此它们对预测毫无用处。
加权移动平均
-
在计算移动平均的基础上加上一组权重因子来计算:
( w 0 , w 1 , , , , w k − 1 ) s u c h t h a t ∑ i = 0 k − 1 w i (w_0,w_1,,,,w_{k-1})\ such\ that \sum_{i=0}^{k-1} w_i (w0,w1,,,,wk−1) such that∑i=0