写在前面的话
如果你是一个股民,某只股票的股价就是一类时序数据,其记录着每个时间点该股票的股价。
如果你是一个运维人员,监控数据是一类时序数据,例如对于机器的CPU的监控数据,就是记录着每个时间点机器上CPU的实际消耗值。
这个世界是由数据构成的,在这个世界上存在的每个物体,每时每刻都在产生着数据。而对这些数据的挖掘和利用,在这个时代,正在默默的改变人们的生活方式。例如通过可穿戴设备对个人健康的管理,就是通过设备不断采集你的个人健康数据,例如心跳、体温等等,收集完数据后套用模型计算来评估你的健康度。
如果你的视野和想象空间足够大,你会发现你能够挖掘并利用的数据充斥在你所生活的环境中。这些能够产生数据的对象,会包括你的手机、汽车、空调、冰箱等等。当前比较火热的物联网的核心思想,其实就是构建一个可以让所有物体生产数据并挖掘其价值的网络。而通过这个网络采集的数据,就是典型的时序数据。
时序数据用于描述一个物体在历史的时间维度上的状态变化信息,而对于时序数据的分析,就是尝试掌握并把控其变化的规律的过程。随着物联网、大数据和人工智能技术的发展,时序数据也呈一个爆发式的增长。而为了更好的支持这类数据的存储和分析,在市场上衍生出了多种多样的新兴的数据库产品。这类数据库产品的发明都是为了解决传统关系型数据库在时序数据存储和分析上的不足和缺陷,这类产品被统一归类为时序数据库。
1.时间序列
1.1时间序列的概念
时间序列是按照时间排序的一组随机变量,它通常是在相等间隔的时间段内依照给定的采样率对某种潜在过程进行观测的结果。时间序列数据本质上反映的是某个或者某些随机变量随时间不断变化的趋势,而时,间序列预测方法的核心就是从数据中挖掘出这种规律,并利用其对将来的数据做出估计。
构成要素:长期趋势,季节变动,循环变动,不规则变动。
1)长期趋势( T )现象在较长时期内受某种根本性因素作用而形成的总的变动趋势。
2)季节变动( S )现象在一年内随着季节的变化而发生的有规律的周期性变动。
3)循环变动( C )现象以若干年为周期所呈现出的波浪起伏形态的有规律的变动。
4)不规则变动(I )是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型。
时间序列在金融、经济、商业领域拥有广泛的应用:
- 机器学习模型,包括AR、MA、ARMA、ARIMA
- 神经网络模型,用LSTM进行时间序列预测
1.2时间序列的不同分类
时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序 列的方法构成数据分析的一个重要领域,即时间序列分析。 时间序列根据所研究的依据不同,可有不同的分类。
1.按所研究的对象的多少分,有一元时间序列和多元时间序列。
2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。
3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列的概率分布与时间t无关,则称该序列为严格的(狭义的)平稳时间序列。如果序列的 一、二阶矩存在,而且对任意时刻t满足:
(1)均值为常数
(2)协方差为时间间隔 τ \small \tau τ的函数。 则称该序列为宽平稳时间序列,也叫广义平稳时间序列。我们以后所研究的时间序列主 要是宽平稳时间序列。
4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。
2.移动平均法
移动平均法 可以作为一种数据平滑的方式 ,以每天的气温数据为例,今天的天气可能与过去的十天的气温有线性关系;或者有的人对食物有一种节俭的美德,他们做的饭菜能看出有些是上一顿的,当然也有一部分是今天的做的,再假设隔两顿的都被倒掉了,并且每天都是这样的,那么这碗饭菜可能就是一部分上一顿的再加上一部分今天现做的,这就是一个一阶的移动平均。
移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数, 以反映长期趋势的方法。当时间序列的数值由于受周期变动和不规则变动的影响,起伏 较大,不易显示出发展趋势时,可用移动平均法,消除这些因素的影响,分析、预测序列的长期趋势。 移动平均法有简单移动平均法,加权移动平均法,趋势移动平均法等。
2.1简单移动平均法
近N 期序列值的平均值作为未来各期的预测结果。一般 N 的取值范围: 5≤N≤ 200。当历史序列的基本趋势变化不大且序列中随机变动成分较多时,N 的 取值应较大一些。否则 N 的取值应小一些。在有确定的季节变动周期的资料中,移动平均的项数应取周期长度。选择佳 N 值的一个有效方法是,比较若干模型的预测误 差。预测标准误差小者为好。
简单移动平均法只适合做近期预测,而且是预测目标的发展趋势变化不大的情况。 如果目标的发展趋势存在其它的变化,采用简单移动平均法就会产生较大的预测偏差和滞后。
例1 某企业 1月~11月份的销售收入时间序列如表1所示。使用一次简单滑动平均法预测12月份的销售收入。
2.2加权移动平均法
在简单移动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据所包含的信息量不一样,近期数据包含着更多关于未来情况的信心。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就 是加权移动平均法的基本思想。
例 2 我国 1979~1988 年原煤产量如表 2 所示,试用加权移动平均法预测 1989 年 的产量
在加权移动平均法中, w t \small w_{t} wt的选择,同样具有一定的经验性。一般的原则是:近期 数据的权数大,远期数据的权数小。至于大到什么程度和小到什么程度,则需要按照预 测者对序列的了解和分析来确定。
2.3趋势移动平均法
简单移动平均法和加权移动平均法,在时间序列没有明显的趋势变动时,能够准确 反映实际情况。但当时间序列出现直线增加或减少的变动趋势时,用简单移动平均法和 加权移动平均法来预测就会出现滞后偏差。因此,需要进行修正,修正的方法是作二次 移动平均,利用移动平均滞后偏差的规律来建立直线趋势的预测模型。这就是趋势移动平均法。 一次移动的平均数为
例 3 我国 1965~1985 年的发电总量如表 3 所示,试预测 1986 年和 1987 年的发 电总量。
解 由散点图 1 可以看出,发电总量基本呈直线上升趋势,可用趋势移动平均法 来预测。
趋势移动平均法对于同时存在直线趋势与周期波动的序列,是一种既能反映趋势变 化,又可以有效地分离出来周期变动的方法。
3.指数平滑法
指数平滑法是在移动平均法基础上发展起来的一种时间序列分析预测法,它是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测,其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均。利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑化,从而显示出长期趋势变化的规律。
用序列过去值的加权均值来预测将来的值,序列中近期的数据被赋以较大的权重,远期的数据被赋以较小的权重。理由是一般情况下,某一变量值对其后继行为的影响作用是逐渐衰减的。
3.1基础知识
-
前提假设:时间序列分析一般假设我们获得的数据在时域上具有一定的相互依赖关系,例如股票价格在t时刻很高,那么在t+1时刻价格也会比较高(跌停才10%);如果股票价格在一段时间内获得稳定的上升,那么在接下来的一段时间内延续上升趋势的概率也会比较大。
-
目标:(1)发现这种隐含的依赖关系,并增加我们对此类时间序列的理解;(2)对未观测到的或者尚未发生的时间序列进行预测。
我们认为时间序列由两部分组成:有规律的时间序列(即有依赖关系)+噪声(无规律,无依赖)。所以,接下来要做的就是过滤噪声:
最简单的 过 滤 噪 声 \color{red}过滤噪声 过滤噪声的方法是:取平均。
3.2简单滑动平均(rolling mean)
-
特点:当窗口取得越长,噪声被去除的就越多,我们得到的信号就越平稳;但同时,信号的有用部分丢失原有特性的可能性就越大,而我们希望发现的规律丢失的可能性就越大。
-
缺点:(1)我们要等到至少获得T个信号才能进行平均,那么得到的新的信号要比原始信号短;(2)在得到S_t的时候,我们只有距离t最近的T个原始信号。但在原始信号中,可能信号之间的相互依赖关系会跨越非常长的时间长度,比如X_1可能会对X_100会产生影响,这样滑动平均就会削弱甚至隐藏这种依赖关系。
3.2指数平均(EXPMA)
接下来介绍一种稍微复杂但能克服以上缺点并且在现实中应用也更加广泛的方法:指数平均 (exponential smoothing,也叫exponential weighted moving average ),这种平均方法的一个重要特征就是,S_t与之前产生的所有信号有关,并且距离越近的信号所占权重越大。
3.2.1一阶指数平滑
当时间数列无明显的趋势变化,可用一次指数平滑预测。
一阶指数平滑实际就是对历史数据的加权平均,它可以用于任何一种 没 有 明 显 函 数 规 律 但 确 实 存 在 某 种 前 后 关 联 \color{red}没有明显函数规律但确实存在某种前后关联 没有明显函数规律但确实存在某种前后关联的时间序列的 短 期 预 测 \color{red}短期预测 短期预测。其预测公式为:(任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均)
y t + 1 ′ = a ∗ y t + ( 1 − a ) ∗ y t ′ 或 者 a l t = " S t ( 1 ) = a ∗ y t + ( 1 − a ) ∗ S t − 1 ( 1 ) " y_{t+1}'=a*y_{t}+(1-a)*y_{t}' \ \ 或者alt="S_{t}^{(1)}=a*y_{t}+(1-a)*S_{t-1}^{(1)}" yt+1′=a∗yt+(1−a)∗yt′ 或者alt="St(1)=a∗yt+(1−a)∗St−1(1)"
a:平滑系数
yt+1’:t+1期的预测值,即本期(t期)的平滑值
St ; yt:t期的实际值;
yt’:t期的预测值,即上期的平滑值St-1 。 本 期 的 平 滑 值 = 下 期 的 预 测 值 \color{red}本期的平滑值 = 下期的预测值 本期的平滑值=下期的预测值
该公式又可以写作:
y t + 1 ′ = y t ′ + a ∗ ( y t − y t ′ ) y_{t+1}'=y_{t}'+a*(y_{t}-y_{t}') yt+1′=yt′+a∗(yt−yt′)
可见:下期预测值是本期预测值与以a为折扣的本期实际值与预测值误差之和。
- 最突出的优点:方法非常简单,甚至只要样本末期的平滑值,就可以得到预测结果。
- 一次指数平滑的特点是:能够跟踪数据变化。这一特点所有指数都具有。预测过程中添加最新的样本数据后,新数据应取代老数据的地位,老数据会逐渐居于次要的地位,直至被淘汰。这样,预测值总是反映最新的数据结构。
- 一次指数平滑有局限性:第一,预测值不能反映趋势变动、季节波动等有规律的变动;第二,这种方法多适用于短期预测,而不适合作中长期的预测;第三,由于 预 测 值 是 历 史 数 据 的 均 值 \color{red}预测值是历史数据的均值 预测值是历史数据的均值,因此与实际序列的变化相比有 滞 后 现 象 \color{red}滞后现象 滞后现象。
- 平滑系数:指数平滑预测是否理想,很大程度上取决于平滑系数。指数平滑法对实际序列具有平滑作用,平滑系数a 越小,平滑作用越强,但对实际数据的变动反应较迟缓。
EViews提供两种确定指数平滑系数的方法: 自 动 给 定 和 人 工 确 定 \color{red}自动给定和人工确定 自动给定和人工确定。选择自动给定,系统将按照 预 测 误 差 平 方 和 最 小 原 则 \color{red}预测误差平方和最小原则 预测误差平方和最小原则自动确定系数。如果系数接近1,说明该序列近似纯随机序列,这时最新的观测值就是最理想的预测值。出于预测的考虑,有时系统给定的系数不是很理想,用户需要自己指定平滑系数值。一般来说:
(1)如果序列变化比较平缓,平滑系数值应该比较小,比如小于0.1;
(2)如果序列变化比较剧烈,平滑系数值可以取得大一些,如0.3~0.5;
(3)若平滑系数值大于0.5才能跟上序列的变化,表明序列有很强的趋势,不能采用一次指数平滑进行预测。
- 缺点:(1)只考虑历史平均,不考虑变化趋势;(2)在实际序列的线性变动部分,指数平滑值序列出现一定的滞后偏差,偏差程度随着平滑系数a 的增大而减少,但当时间序列的变动出现直线趋势时,用一次指数平滑法来进行预测仍将存在明显的滞后偏差。因此,也需要进行修正。
修 正 的 方 法 \color{red}修正的方法 修正的方法也是在一次指数平滑的基础上再进行二次指数平滑,利用滞后偏差的规律找出曲线的发展方向和发展趋势,然后建立直线趋势预测模型,故称为二次指数平滑法。
3.2.2二次指数平滑
二次指数平滑是对一次指数平滑的再平滑,同时考虑历史平均和变化趋势。它适用于具线性趋势的时间数列。
我们可以看到,虽然一次指数平均在产生新的数列的时候考虑了所有的历史数据,但是仅仅考虑其静态值,即没有考虑时间序列当前的变化趋势。如果当前的股票处于上升趋势,那么当我们对明天的股票进行预测的时候,好的预测值不仅仅是对历史数据进行”平均“,而且要考虑到当前数据变化的上升趋势。同时考虑历史平均和变化趋势,这便是二阶指数平均,公式:
y t + m = ( 2 + a m 1 − a ) y t ′ − ( 1 + a m 1 − a ) y t = ( 2 y t ′ − y t ) + m ( y t ′ − y t ) a 1 − a y_{t+m}=(2+\frac{am}{1-a})y_{t}'-(1+\frac{am}{1-a})y_{t}=(2y_{t}'-y_{t})+m(y_{t}'-y_{t})\frac{a}{1-a} yt+m=(2+1−aam)yt′−(1+1−aam)yt=(2yt′−yt)+m(y