时间序列平滑

简介

综合转载于:

移动平均

其中,$y_i$ 为第 $i$ 期的实际值,$\widehat{y}_{t+1}$ 为第 $t+1$ 期的预测值。

特点:$n$ 越大,对干扰的敏感性越低,预测的稳定性越好,响应性就越差。对数据不分远近,同等对待。

加权移动平均

其中,$y_i$ 为第 $i$ 期的实际值,$\widehat{y}_{t+1}$ 为第 $t+1$ 期的预测值,$a_{i-t+n}$ 为权重系数。

特点:

  • $n$ 越大,预测的稳定性就好,响应性就越差;$n$ 越小,预测的稳定性就越差,响应性就越好。

  • 近期数据的权重越大,则预测的稳定性就越差,响应性就越好;近期数据的权重越小,则预测的稳定性就越好,响应性就越差。

  • 然而,$a_i$ 和 $n$ 的选择都没有固定的模式,都带有一定的经验性,究竟选用什么数值,要根据预测的实践而言。

一次指数

特点:

  • 不需要存储大量数据,只需要存储访问最新一个预测值。

  • $a$ 选得小一些,预测的稳定性就比较好;反之,响应性比较好。

  • 在有趋势的情况下,一次指数平滑法预测,会出现滞后现象。

二次指数

二次指数针对的是趋势,将趋势作为一个额外考量,保留了趋势的详细信息。即我们保留并更新两个量的状态:平滑后的信号平滑后的趋势。公式如下:

第二个等式描述了平滑后的趋势。当前趋势的未平滑值 $t_i$ 是当前平滑值 $s_i$ 和上一个平滑值 $s_{i-1}$ 的差;也就是说,当前趋势告诉我们在上一个时间步长里平滑信号改变了多少。**要想使趋势平滑,我们用一次指数平滑法对趋势进行处理,并使用参数 $\beta$ (理解:对 $t_i$ 的处理类似于一次平滑指数法中的 $s_i$ ,即对趋势也需要做一个平滑,临近的趋势权重大)。

为获得平滑信号,我们像上次那样进行一次混合,但要同时考虑到上一个平滑信号及趋势。假设单个步长时间内保持着上一个趋势,那么第一个等式的最后那项就可以对当前平滑信号进行估计。

若要利用该计算结果进行预测,就取最后那个平滑值,然后每增加一个时间步长就在该平滑值上增加一次最后那个平滑趋势:

三次指数

三次指数就是Holt-Winters,针对季节性。当一个序列在每个固定的时间间隔中都出现某种重复的模式,就称之具有季节性特征,而这样的一个时间间隔称为一个季节(理解:比如说在一个周内,销量呈现出重复的模式)。一个季节的长度 $k$ 为它所包含的序列点个数。

二次指数平滑考虑了序列的baseline和趋势,三次就是在此基础上增加了一个季节分量。类似于趋势分量,对季节分量也要做指数平滑。比如预测下一个季节第3个点的季节分量时,需要指数平滑地考虑当前季节第3个点的季节分量、上个季节第3个点的季节分量等。详细的有下述公式(累加法):

其中,$p_i$ 是指“周期性”部分。预测公式如下:

其中, $k$ 是这个周期的长度。

参数选取

$\alpha$,$\beta$,$\gamma$ 的值都位于[0,1]之间,可以多试验几次以达到最佳效果。当然,一些寻优方法,比如贝叶斯调参,网格调参可用于调整参数。

$s$,$t$,$p$ 初始值的选取对于算法整体的影响不是特别大,通常的取值为 $s_0=x_0$,$t_0=x_1-x_0$,累加时 $p=0$, 累乘时 $p=1$。

卡尔曼滤波+平滑

卡尔曼滤波和卡尔曼平滑的区别在于卡尔曼滤波是前向算法,只利用历史信息,卡尔曼平滑是后向算法,会利用到未来信息。

具体见:卡尔曼滤波及应用于时序

一分一毛,也是心意。