zoukankan      html  css  js  c++  java
  • 时间序列 介绍(一)

    引言

    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,…})

    1. 均值函数:

      [mu_t = E(Y_t), t= 0,pm1,pm2,… ]

      (mu_t) 恰是过程在t时刻的期望值,一般地,不同时刻(mu_t) 可取不同的值。

    2. 自协方差函数:

      [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)

    3. 自相关函数:

      [ 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}}})

    从上面可以推知:

    [gamma{t,s} = gamma{s,t}; ho_{t,t} = 1 ]

    [gamma_{t,t} = Var(Y_t); ho_{t,s} = ho_{s,t} ]

    [|gamma_{t,s} le sqrt{gamma_{t,t}gamma_{s,s}}|; | ho_{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. egin{aligned} X_1 & = & epsilon_1 \ X_2 & = & epsilon_1 + epsilon_2 \ &vdots& \ X_t & = & epsilon_1+epsilon_2 + dots+epsilon_t end{aligned} ight} ]

    等价地,(定义(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 ]

    [ ho_{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 平稳性

    接下来,我们就要了解下平稳性的概念了。平稳性可分为严平稳以及宽平稳两种:

    1. 时间序列({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})) 具有相同的(联合)概率分布。通俗地说,即随便取两段相同长度的时间序列数据,’看起来‘应该差不多,没有明显区别。

    如果在生产生活中碰到严平稳数据应该高兴因为它一定会很好处理,但绝大部分都不符合严平稳的性质。但我们会经常碰到宽平稳数据:

    1. 时间序列({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 两类重要的平稳时间序列

    1. 白噪声

      设时间序列({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.​ ]

    [ ho_k = left{egin{aligned} 1, quad k = 0 &&\ && k = 0,pm1,pm2,...\ 0, quad k e 0. &&\ end{aligned} ight. ]

    白噪声的结构相对简单,但却是非常重要的,因为它是后面要讲的众多重要模型或序列的‘生成元’。

    1. 随机余弦波:

      这个也是一个重要的平稳时间序列,但可能后面很多讲都见不到,等见到,咱再讲也不迟。

    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.

  • 相关阅读:
    convert image to base64 and post to RESTful wcf
    在android webview实现截屏的手动tounchmove裁剪图片
    How to use jquery ajax and android request security RESTful WCF
    using swfUpload in asp.net mvc
    using HttpClient and sending json data to RESTful server in adroind
    ODP.NET数据访问
    android image watermark
    解决国内不能访问github的问题
    idapro权威指南第二版阅读笔记第九章 交叉引用和绘图功能
    idapro权威指南第二版阅读笔记第二章 逆向和反汇编工具
  • 原文地址:https://www.cnblogs.com/vpegasus/p/7085369.html
Copyright © 2011-2022 走看看