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.

  • 相关阅读:
    006-STM32+BC26基本控制篇-基础应用-域名申请SSL证书
    005-STM32+BC26基本控制篇-基础应用-域名备案
    004-STM32+BC26基本控制篇-基础应用-购买域名,配置域名解析
    003-STM32+BC26基本控制篇-基础应用-安装Web服务器软件Nginx(.Windows系统)
    002-STM32+BC26基本控制篇-基础应用-测试APP扫码绑定BC26模组并实现APP和开发板之间通过MQTT进行远程通信控制
    Spark实战(六)spark SQL + hive(Python版)
    Spark实战(五)spark streaming + flume(Python版)
    Spark实战(二)Spark常用算子
    Spark面试常见问题(一)--RDD基础
    Spark实战(三)本地连接远程Spark(Python环境)
  • 原文地址:https://www.cnblogs.com/vpegasus/p/7085369.html
Copyright © 2011-2022 走看看