Holt Winter 指数平滑模型

Python017

Holt Winter 指数平滑模型,第1张

移动平均模型在解决时间序列问题上简单有效,但它们的计算比较难,因为不能通过之前的计算结果推算出加权移动平均值。此外,移动平均法不能很好的处理数据集边缘的数据变化,也不能应用于现有数据集的范围之外。因此,移动平均法的预测效果相对较差。

指数平滑法(exponential smoothing)是一种简单的计算方案,可以有效的避免上述问题。按照模型参数的不同,指数平滑的形式可以分为一次指数平滑法、二次指数平滑法、三次指数平滑法。其中一次指数平滑法针对没有趋势和季节性的序列,二次指数平滑法针对有趋势但是没有季节特性的时间序列,三次指数平滑法则可以预测具有趋势和季节性的时间序列。术语“Holt-Winter”指的是三次指数平滑。

Holt-Winter指数平滑法按照季节性分量的计算方式不同,可以分为累加式季节性分量和累乘式季节性分量。两种不同的分量对应的时间序列计算等式和预测公式均不同,稍后我们会详细介绍。

指数平滑法是一种结合当前信息和过去信息的方法,新旧信息的权重由一个可调整的参数控制,各种变形的区别之处在于其“混合”的过去信息量的多少和参数的个数。

常见的有单指数平滑、双指数平滑。它们都只有一个加权因子,但是双指数平滑使用相同的参数将但指数平滑进行两次,适用于有线性趋势的序列。单指数平滑实质上就是自适应预期模型,适用于序列值在一个常数均值上下随机波动的情况,无趋势及季节要素的情况,单指数平滑的预测对所有未来的观测值都是常数。

一次指数平滑的递推关系公式:

其中,s_i是第i步经过平滑的值,x_i是这个时间的实际数据。alpha是加权因子,取值范围为[0,1],它控制着新旧信息之间的权重平衡。当alpha接近1时,我们就只保留当前数据点(即完全没有对序列做平滑操作),当alpha接近0时,我们只保留前面的平滑值,整个曲线是一条水平的直线。在该方法中,越早的平滑值作用越小,从这个角度看,指数平滑法像拥有无限记忆且权值呈指数级递减的移动平均法。 

一次指数平滑法的预测公式为:

因此,一次指数平滑法得到的预测结果在任何时候都是一条直线。并不适合于具有总体趋势的时间序列,如果用来处理有总体趋势的序列,平滑值将滞后于原始数据,除非alpha的值非常接近1,但这样使得序列不够平滑。

二次指数平滑法保留了平滑信息和趋势信息,使得模型可以预测具有趋势的时间序列。二次指数平滑法有两个等式和两个参数:

t_i代表平滑后的趋势,当前趋势的未平滑值是当前平滑值s_i和上一个平滑值s_{i-1}的差。s_i为当前平滑值,是在一次指数平滑基础上加入了上一步的趋势信息t_{i-1}。利用这种方法做预测,就取最后的平滑值,然后每增加一个时间步长,就在该平滑值上增加一个t_{i}:

在计算的形式上这种方法与三次指数平滑法类似,因此,二次指数平滑法也被称为无季节性的Holt-Winter平滑法。

三次指数平滑法相比二次指数平滑,增加了第三个量来描述季节性。累加式季节性对应的等式为:

累乘式季节性对应的等式为:

其中p_i为周期性的分量,代表周期的长度。x_{i+h}为模型预测的等式。

参考文献:

[1] 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters). http://www.dataguru.cn/article-3235-1.html.

[2] R语言与数据分析之九:时间内序列--HoltWinters指数平滑法 . http://blog.csdn.net/howardge/article/details/42076781.

[3] Holt-Winters原理和初始值的确定 . http://www.cnblogs.com/xuanlvshu/p/5451974.html.

使用R语言进行时间序列(arima,指数平滑)分析 - 拓端研究室TRL...

2022年11月23日您要分析时间序列数据的第一件事就是将其读入R,并绘制时间序列。您可以使用scanR语言实战之时间序列分析

萌弟

生活就像马尔可夫链,决定未来的只有现在,过去的终将埋葬。

来自专栏R语言实战学习

前面的线性回归探讨的是横截面(cross-sectional)数据。在横截面数据集中,我们是在一个给定的时间点测量变量值。与之相反,纵向(longitudinal)数据则是随着时间的变化反复测量变量值。若持续跟踪某一现象,可能会获得很多了解。 对时序数据的研究包括两个基本问题: 对数据的描述 (这段时间内发生了什么)以及预测(接下来将会发生什么) 。我们可能有如下疑问。

Johnson &Johnson股价在这段时间内有变化吗?

数据会受到季度影响吗?股价是不是存在某种固定的季度变化?

我们可以预测未来的股价吗?如果可以的话,准确率有多高?

描述时序数据和预测未来值的方法有很多,而R软件具备很多其他软件都不具备的精细时序分析工具。

将分析的几个时序数据集,这些数据集在R中都可以找到,它们各有特点,适用的模型也各不相同。

本文首先介绍生成、操作时序数据的方法,对它们进行描述并画图,将它们分解成水平、趋势、季节性和随机(误差)等四个不同部分。在此基础上,我们采用不同的统计模型对其进行预测。将要介绍的方法包括基于加权平均的指数模型,以及基于附近数据点和预测误差间关联的自回归积分移动平均(ARIMA)模型。我们还将介绍模型拟合和预测准确性的评价指标。

本章内容:

在 R 中生成时序对象

时序的平滑化和季节性分解