1.1时间序列定义: 时间序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列. 构成要素:现象所属的时间,反映现象发展水平的指标数值.要素一:时间t;要素二:指标数值。 1.2时间序列的成分: 一个时间序列中往往由几种成分组成,通常假定是四种独立的成分——趋势T、循环C、季节S和不规则I。 T 趋势通常是长期因素影响的结果,如人口总量的变化、方法的变化等。 C任何时间间隔超过一年的,环绕趋势线的上、下波动,都可归结为时间序列的循环成分。 S许多时间序列往往显示出在一年内有规则的运动,这通常由季节因素引起,因此称为季节成分。目前,可以称之为“季节性的周期”,年或者季节或者月份。 I时间序列的不规则成分是剩余的因素,它用来说明在分离了趋势、循环和季节成分后,时间序列值的偏差。不规则成分是由那些影响时间序列的短期的、不可预期的和不重复出现的因素引起的。它是随机的、无法预测的。 四个组成部分与观测值的关系可以用乘法模型或者加法模型或者综合。 1.3预测方法的选择与评估 方法P216 三种预测方法:移动平均法、加权移动平均法和指数平滑法。因为每一种方法的都是要“消除”由时间序列的不规则成分所引起的随机波动,所以它们被称为平滑方法。平滑方法对稳定的时间序列——即没有明显的趋势、循环和季节影响的时间序列——是合适的,这时平滑方法很适应时间序列的水平变化。但当有明显的趋势、循环和季节变差时,平滑方法将不能很好地起作用。 移动平均法使用时间序列中最近几个时期数据值的平均数作为下一个时期的预测值。移动平均数的计算公式如下:
指数平滑法模型: 式中Ft+1——t+1期时间序列的预测值; Yt——t期时间序列的实际值; Ft——t期时间序列的预测值; α——平滑常数(0≤α≤1)。
均方误差是常用的(MSE) 标准误差定义为各测量值误差的平方和的平均值的平方根。 设n个测量值的误差为ε1、ε2……εn,则这组测量值的标准误差σ等于: 数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。与此相对应的,还有均方根误差RMSE、平均绝对百分误差等等。
时间序列平稳性的定义 假定某个时间序列由某一随机过程(stochastic process)生成,即假定时间序列{Xt}(t=1, 2, …)的每一个数值都是从一个概率分布中随机得到的。如果经由该随机过程所生成的时间序列满足下列条件: 均值E(Xt)=m是与时间t 无关的常数; 方差Var(Xt)=s^2是与时间t 无关的常数; 协方差Cov(Xt,Xt+k)=gk 是只与时期间隔k有关,与时间t 无关的常数; 则称经由该随机过程而生成的时间序列是(弱)平稳的(stationary)。该随机过程便是一个平稳的随机过程(stationary stochastic process)。 例如,白噪声(white noise)过程就是平稳的: Xt=ut , ut~IIN(0,s^2) 因为它的均值为常数零;方差为常数s^2;所有时间间隔的协方差均为零。 但随机游走(random walk)过程是非平稳的: Xt=Xt-1+ut , ut~IIN(0,s^2), 因为尽管其均值为常数E(Xt)=E(Xt-1),但其方差Var(Xt)=ts^2非常数。 不过,若令DXt=Xt-Xt-1,则随机游走过程的一阶差分(first difference)是平稳的: DXt=Xt-Xt-1=ut ,ut~IIN(0,s^2) 一般地,在经济系统中,一个非平稳的时间序列通常均可通过差分变换的方法转换成为平稳序列。 指数平滑法有几种不同形式:一次指数平滑法针对没有趋势和季节性的序列,二次指数平滑法针对有趋势但 没有季节性的序列。术语“Holt-Winters法”有时特指三次指数平滑法。 所有的指数平滑法都要更新上一时间步长的计算结果,并使用当前时间步长的数据中包含的新信息。它们通过“混合”新信息和旧信息来实现,而相关的新旧信息的权重由一个可调整的拌和参数来控制。各种方法的不同之处在于它们跟踪的量的个数和对应的拌和参数的个数。 一次指数平滑法的递推关系特别简单:
其中, 是时间步长i上经过平滑后的值, 是这个时间步长上的实际(未平滑的)数据。你可以看到 是怎么由原始数据和上一时间步长的平滑值 混合而成的。拌和参数 可以是0和1之间的任意值,它控制着新旧信息之间的平衡:当 接近1时,我们就只保留当前数据点(即完全没有对序列进行平滑);当 接近0时,我们就只保留前面的平滑值(也就是说整个曲线都是平的)。 为何这个方法被称为“指数”平滑法?要找出答案,展开它的递推关系式即可知道:
从这里可以看出,在指数平滑法中,所有先前的观测值都对当前平滑值产生了影响,但它们所起的作用随着参数 的幂的增大而逐渐减小。那些相对较早的观测值所起的作用相对较小,这也就是指数变动形态所表现出来的特性。从某种程度上来说,指数平滑法就像是拥有
无限记 忆且权值呈指数级递减的移动平均法。(同时也要注意到所有权值的和,
等于1,因为当q<1 时,几何序列 。参见附录B的几何序列方面的信息。) 一次指数平滑所得的计算结果可以在数据集范围之外进行扩展,因此也就可以用来进行预测。预测也非常简单:
其中, 是最后一个已经算出来的值。也就是说,一次指数平滑法得出的预测在任何时候都是一条直线。 刚刚描述的一次指数平滑法适用于没有总体趋势的时间序列。如果用来处理有总体趋势的序列,平滑值将往往滞后于原始数据,除非 的值接近1,但这样一来就会造成不够平滑。 二次指数平滑法保留了趋势的详细信息,从而改正了这个缺点。换句话说,我们保留并更新两个量的状态:平滑后的信号和平滑后的趋势。它有两个等式和两个拌合参数:
我们先看看第二个等式。这个等式描述了平滑后的趋势。当前趋势的未平滑“值”是当前平滑值和上一个平滑值的差;也就是说,当前趋势告诉我们在上一个 时间步长里平滑信号改变了多少。要想使趋势平滑,我们用一次指数平滑法对趋势进行处理,并使用拌合参数 。为获得平滑信号,我们像上次那样进行一次混合,但要同时考虑到上一个平滑信号及趋势。第一个等式的最后那个项可以对当前平滑信号进行估计——假设在单个 时间步长里我们保持着上一个趋势。 若要利用该计算结果进行预测,我们就取最后那个平滑值,然后每增加一个时间步长,就在该平滑值上增加一次最后那个平滑趋势:
最后,我们给三次指数平滑法添加第三个量,用来描述季节性。我们有必要区分一下累加式和累乘式季节性,累加式对应的等式:
累乘式的等式:
其中,pi 是指“周期性”部分, 是这个周期的长度。前面的等式中也包含预测的等式。 所有的指数平滑方法都是基于递推关系的,这表明我们要先设定初始值才能使用它们。选择什么样的初始值并不特别重要:指数式衰减规律说明所有的指数平滑方法的“记忆”能力都是很短的,只需经过几个时间步长,初始值的影响就会变得微乎其微。一些合理的初始值:
且
对三次指数平滑法而言,我们必须初始化一个完整的“季节”的值,不过我们可以简单地设置为全1(针对累乘式)或全0(针对累加式)。只有当序列的长度较短时,我们才需要慎重考虑初始值的选取。 最后一个问题是如何选择拌合参数。 我的建议是反复试验。先试试0.2和0.4之间的几个值(非常粗略地),然后看看会得到什么结果。或者也可以为(实际数据和平滑算法的结果之间的)误差定 义一个标准,再使用一个数值优化过程来将误差最小化。就我的经验而言,一般没有必要弄得这么麻烦,原因至少有两个:数值优化是一个不能保证收敛的迭代过 程,最终你可能还需要花非常多时间将算法设计成收敛的。此外,任何这样的数值优化都受限于你选对误差进行最小化的表达式。问题是使误差最小化的参数值可能 并不能满足在解决方案中你想要看到的其他特性(也就是近似值的精确性和结果曲线的平滑程度之间的平衡),那么,到最后你才会发现,手动的计算方法往往更 好。不过,如果你要预测很多序列,花些精力构建一个能自动决定最优参数值的系统也是值得的,但要实现这个系统恐怕也并不容易。 最后,我想用一个例子来展示我们想从指数平滑法得到的结果。下图是一个经典的数据集,它显示的是每个月国际航班的旅客数量(单位:千人) 。该图显示了实际数据和三次指数近似值。1949—1957年用来“训练”生成它的算法,而1958—1960年都是预测数值。注意,这里的预测值与实际 数据相当接近——特别是它强烈的季节形态——持续了一段如此长的预测时段(整整三年!)。对于像这样简单的方法来说,是很不错的。
时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters) 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(Triple/Three Order Exponential Smoothing,Holt-Winters)算法可以很好的进行时间序列的预测。 时间序列数据一般有以下几种特点:1.趋势(Trend) 2. 季节性(Seasonality)。 趋势描述的是时间序列的整体走势,比如总体上升或者总体下降。下图所示的时间序列是总体上升的:
季节性描述的是数据的周期性波动,比如以年或者周为周期,如下图: