引言
DT时代,数据的重要性已经不必再强调了。
最近几年深度学习,机器学习,人工智能炙手可热,各行各业的人,无论是单纯的蹭热度也好,还是真的想做一些改变,都在往这三个概念上靠,但我相信,绝大部分人是真的希望借着人工智能的‘好风’做出些成绩的。而这些所谓的‘高科技’对数据却又是强依赖的。 那么对数据深入了解,做到知己知彼,可以说是很有必要的。
数据中,有一种数据叫时间序列数据,是很重要的一种数据。这种数据在各行各业都占有很大的比重。目前,在金融界,时间序列的研究是最热的。没办法,人家那可是最直接的真金白银。而其他行业对此研究可就有点跟不节奏了。运维域内的数据绝大部分都是时间序列数据,而对于这些数据的挖掘是非常重要的。咱不能让人家落下。希望接下来的系列文章对大家能有所帮助。
1.时间序列分解
时间序列是按照时间次序排列的随机变量序列。如股价变动,CPU使用率波动等等。下图是某地历史上的降雨量时间序列图:(是不是感觉和你熟悉的数据样子差不多?)
任何时间序列经过合理的函数变换后,都可以被认为是由三个部分叠加而成的,即:趋势项部分,周期项部分,以及随机噪声项部分。
用公式表示:
其中 T是趋势项,S是周期项,R是随机项,X则是时间序列项。t代表的是时间。
研究时间序列的最主要目的当然是预测。 而从时间序列中把这三个部分分解出来是序列分析、预测的的首要任务,这一过程被称为时间序列分解(Time Series Decomposition, TSD)。
1.1 分解时间序列
趋势项是时间序列中总体的变化趋势,是缓慢的,长期的。一般先把趋势项分离出来,再依次分离周期项、随机项。其分解方式有以下几种:
1.1.1 分段常数法
这是最简单最直接的方法,比如,把股票的月均价做为股价的趋势变化。然后用时间序列减掉趋势项,剩下周期项与随机项。可再以周均值或日均值做为周期项,再减掉即剩下随机项了,也即随机项的估计了。
1.1.2回归趋势
另一种比较简单的趋势拟合即是采用线性回归。从趋势项的角度,可简单地认为时间序列与时间有简单的线性关系:
或者可以认为是二次曲线的趋势:
当然,一说到回归,选择也就多了起来,不必拘泥某一种形式,根据相关数据选择最优的模型是关键。
1.1.3 逐步平均法
可理解为在时间维度上的分段平均法。
1.2 平稳序列
可以看到,时间序列中的趋势项,以及周期项是比较容易提取的,其中应用到的知识也是比较长规,甚至可以说是简单。当剔除趋势项以及周期项,时间序列往往表现出某种平稳波动性,即平稳序列。我们之所以研究时间序列,或者说时间序列可研究,是因为我们认为时间序列数据是蕴含数据的变化信息的。基于此,我们才可以在知道历史数据时,对未来做出预测。而平稳性是要满足的一个条件。(如果不满足怎么办?那我们后面会谈到如何将非平稳的变成平稳序列。如果变不成呢?那就没辙了。
1.2.1基本概念
在讲平稳序列之前,我们先来说说基本概念:
随机变量序列({Y_t: t= 0,pm1,pm2,...}) 称为一个随机过程,并以之作为观测时间序列模型。已知该过程完整的概率结构是由所有 Y 的有限联合分布构成的分布族决定的。大家不要被其中的关于随机过程的相关名词吓到,没必要,你只要知道他是以数学的方式来描述时间序列就够了。我只需关注下面的一些概念就可以了。
对于随机过程:({Y_t: t= 0,pm1,pm2,…}) :
-
均值函数:
[mu_t = E(Y_t), t= 0,pm1,pm2,… ]即(mu_t) 恰是过程在t时刻的期望值,一般地,不同时刻(mu_t) 可取不同的值。
-
自协方差函数:
[gamma_{t,s} = Cov(Y_t,Y_s), t,s = 0,pm1,pm2,… ]其中 (Cov(Y_t,Y_s) = E[(Y_t - mu_t)(Y_s - mu_s)] = E(Y_tY_s) - mu_tmu_s)
-
自相关函数:
[ ho_{t,s} = Corr(Y_t,Y_s), t,s = 0,pm1,pm2,… ]其中(Corr(Y_t,Y_s) = frac{Cov(Y_t,Y_s)}{sqrt{Var(Y_t)Var(Y_s)}} = frac{gamma_{t,s}}{sqrt{gamma_{t,t}gamma_{s,s}}})
从上面可以推知:
上面是最最基本的概念了,大家不要被公式吓到,你能看到这篇文章,99% 说明你上过大学,这些充其量也就是高中知识,多一分钟思考,之后的概念才好理解。以后不必要的公式绝不放上来,有用的公式我一定会‘大白话’给大家解释。'冻挖瑞~'
1.2.2随机游动
令 (e_1, e_2), … 为一列独立同分布随机变量序列,简记为(e_1, e_2,dots *i.i.d*. 假定 var()e_1$) = (sigma), (Ee_1 = 0)
按下面的方式给出的序列{(X_t):和=1, 2, …},称为随机游动(random walk):
等价地,(定义(X_0)= 0):
即 t 时刻的变量是与(t-1)时刻有关的。
刚可以很得到下面的一些结论:
这里也就是说,对于满足随机游动的时间序列,它的序列均值是0,方差是一个定值,t,s两时点的数据相关系数只与两者所在时间有关,而与其他无关。
下图是一个随机游动模拟的例子:
1.2.3 平稳性
接下来,我们就要了解下平稳性的概念了。平稳性可分为严平稳以及宽平稳两种:
- 时间序列({X_t : t= 0,pm1,pm2,…,}) 称为严平稳,若其(联合)概率分布具有推移不变性。即对任意整数(sle t) 及正整数(n ge 1),随机向量((X_s,X_{s+1},…,X_{s+n})) 和((X_t,X_{t+1},...X_{t+n})) 具有相同的(联合)概率分布。通俗地说,即随便取两段相同长度的时间序列数据,’看起来‘应该差不多,没有明显区别。
如果在生产生活中碰到严平稳数据应该高兴因为它一定会很好处理,但绝大部分都不符合严平稳的性质。但我们会经常碰到宽平稳数据:
- 时间序列({X_t : t= 0,pm1,pm2,…,}) 称为宽平稳:若其满足如下3条:
- (EX_t^2 le infty, t=0,pm1,pm2,...)
- 均值函数为常数,$mu_t = EX_t =c, t = 0,pm1,pm2,... $
- 自协方差函数(gamma_{t,s}) 只依赖于时间间隔(t-s) (等价地 ( s-t ) ),即:(gamma_{t,s} = gamma_{s,t}, t,s = 0,pm1,pm2,...)
以后指的平稳性,如无特指,即指的是宽平稳。
1.2.4 两类重要的平稳时间序列
-
白噪声
设时间序列({epsilon_t: t = 0,pm1,pm2,dots}) 满足:
[Eepsilon_t = 0, cov(epsilon_t,epsilon_s) = left{ egin{aligned} sigma^2, qquad t = s && \ && t,s = 0,pm1,pm2,dots \ 0 , qquad t e t && \ end{aligned} ight. ]则称({epsilon_t} ={epsilon_t: t = 0,pm1,pm2,...}) 为白噪声,简记为:({epsilon_t}sim WN(0,sigma^2)).
可知对于白噪声:
[gamma_k = left{egin{aligned} sigma^2, quad k = 0 &&\ && k = 0,pm1,pm2,...\ 0, quad k e 0. &&\ end{aligned} ight. ]
白噪声的结构相对简单,但却是非常重要的,因为它是后面要讲的众多重要模型或序列的‘生成元’。
-
随机余弦波:
这个也是一个重要的平稳时间序列,但可能后面很多讲都见不到,等见到,咱再讲也不迟。
1.3 总结
作为第一讲,我们从整体上了解了什么是时间序列,也讲了很多概念,更用了很多公式,这些是时间序列最最基本的东西,是后面的知识的基础,大家一定把这里的东西‘吃透’,那后面的知识就会比较轻松。
1.4 参考文献:
PS: 接下来基本上都是以下列文献作为参考文献,所以后面将不再罗列出来,除非新加入的文献,请知悉。
1: 何书元. 应用时间序列分析 北京:北京大学出版社,2003
2: Peter J. Brockwell, Rechard A. Davis 著, 田铮等译. 时间序列的理论与方法(第二版).北京:高等教育出版社,2001
3: Jonathon D. Cryer, Kung-Sik Chan 著,潘红宇等译.时间序列分析及应用:R语言(原书第二版).北京: 机械工业出版社,2011
4: Walter Enders 著,杜江;谢志超译. 应用计量经济学:时间序列分析(第二版).北京:高等教育出版社,2006.
5: Ruey S. Tsay 著,王远林等译.金融时间序列分析(第三版)北京:人民邮电出版社,2012.