引言
DT时代,数据的重要性已经不必再强调了。
最近几年深度学习,机器学习,人工智能炙手可热,各行各业的人,无论是单纯的蹭热度也好,还是真的想做一些改变,都在往这三个概念上靠,但我相信,绝大部分人是真的希望借着人工智能的‘好风’做出些成绩的。而这些所谓的‘高科技’对数据却又是强依赖的。 那么对数据深入了解,做到知己知彼,可以说是很有必要的。
数据中,有一种数据叫时间序列数据,是很重要的一种数据。这种数据在各行各业都占有很大的比重。目前,在金融界,时间序列的研究是最热的。没办法,人家那可是最直接的真金白银。而其他行业对此研究可就有点跟不节奏了。希望接下来的系列文章对大家能有所帮助。
1.时间序列分解
时间序列是按照时间次序排列的随机变量序列。如股价变动,CPU使用率波动等等。下图是某地历史上的降雨量时间序列图:(是不是感觉和你熟悉的数据样子差不多?)
任何时间序列经过合理的函数变换后,都可以被认为是由三个部分叠加而成的,即:趋势项部分,周期项部分,以及随机噪声项部分。
用公式表示:
[X_t = T_t S_t R_t, t = 1,2,3,… ]
其中 T是趋势项,S是周期项,R是随机项,X则是时间序列项。t代表的是时间。
研究时间序列的最主要目的当然是预测。 而从时间序列中把这三个部分分解出来是序列分析、预测的的首要任务,这一过程被称为时间序列分解(Time Series Decomposition, TSD)。
1.1 分解时间序列
趋势项是时间序列中总体的变化趋势,是缓慢的,长期的。一般先把趋势项分离出来,再依次分离周期项、随机项。其分解方式有以下几种:
1.1.1 分段常数法
这是最简单最直接的方法,比如,把股票的月均价做为股价的趋势变化。然后用时间序列减掉趋势项,剩下周期项与随机项。可再以周均值或日均值做为周期项,再减掉即剩下随机项了,也即随机项的估计了。
1.1.2回归趋势
另一种比较简单的趋势拟合即是采用线性回归。从趋势项的角度,可简单地认为时间序列与时间有简单的线性关系:
[X_t = a bt epsilon_t, t = 1,2,3,… ]
或者可以认为是二次曲线的趋势:
[X_t = a bt ct^2 epsilon_t, t= 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)
- 自相关函数: [rho_{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}}})
从上面可以推知:
[gamma{t,s} = gamma{s,t}; rho_{t,t} = 1 ]
[gamma_{t,t} = Var(Y_t); rho_{t,s} = rho_{s,t} ]
[|gamma_{t,s} le sqrt{gamma_{t,t}gamma_{s,s}}|; |rho_{t,st} le 1| ]
上面是最最基本的概念了,大家不要被公式吓到,你能看到这篇文章,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):
[left. begin{aligned} X_1 & = & epsilon_1 \ X_2 & = & epsilon_1 epsilon_2 \ &vdots& \ X_t & = & epsilon_1 epsilon_2 dots epsilon_t end{aligned} right} ]
等价地,(定义(X_0)= 0):
[X_t = X_{t-1} epsilon_t, t = 1, 2, … ]
即 t 时刻的变量是与(t-1)时刻有关的。
刚可以很得到下面的一些结论:
[mu_t = EX_t = E(epsilon_1 epsilon_2 dots epsilon_t) = 0, t=1, 2, … ]
[gamma_{t,s} = sum_{i = 1}^tsum_{j=1}^s cov(epsilon_i,epsilon_j) = ssigma^2, 1 le s le t ]
[rho_{t,s} = frac{gamma_{t,s}}{sqrt{gamma_{t,t,}gamma_{s,s}}} = frac{ssigma^2}{sqrt{tsigma^2ssigma^2}} = sqrt{frac{s}{t}}, 1le sle t ]
这里也就是说,对于满足随机游动的时间序列,它的序列均值是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{ begin{aligned} sigma^2, qquad t = s && \ && t,s = 0,pm1,pm2,dots \ 0 , qquad tne t && \ end{aligned} right. ] 则称({epsilon_t} ={epsilon_t: t = 0,pm1,pm2,…}) 为白噪声,简记为:({epsilon_t}sim WN(0,sigma^2)). 可知对于白噪声: [gamma_k = left{begin{aligned} sigma^2, quad k = 0 &&\ && k = 0,pm1,pm2,…\ 0, quad k ne 0. &&\ end{aligned}right. ]
[rho_k = left{begin{aligned} 1, quad k = 0 &&\ && k = 0,pm1,pm2,…\ 0, quad k ne 0. &&\ end{aligned}right. ]
白噪声的结构相对简单,但却是非常重要的,因为它是后面要讲的众多重要模型或序列的‘生成元’。
- 随机余弦波: 这个也是一个重要的平稳时间序列,但可能后面很多讲都见不到,等见到,咱再讲也不迟。
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.
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167892.html原文链接:https://javaforall.cn