R语言:时间序列

Posted 易学统计

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言:时间序列相关的知识,希望对你有一定的参考价值。

题记:本文是个人的读书笔记,仅用于学习交流使用。本文将深入研究时间序列技术。

01

解决什么问题?

      在社会活动中经常可见按照时间顺序记录下来的随机事件观察值,例如每年死亡人数序列,每年糖尿病发病人数序列,医院门诊每日诊治病例数序列。这类数据的特性是相邻时间点的观察值之间具有明显的相关性,这一特性不同于独立随机观察资料,因而不能用通常以独立随机观察为假定条件的统计方法分析,而要采用时间序列分析方法分析。

     先来看一个时间序列的例子。收集了某市2007年1月1日至2009年12月31日的大气中颗粒物PM的每日测定值。从图可见,该市空气中颗粒物PM10含量的日平均值变化特点是:年初和年末的平均浓度较高,夏秋季的平均浓度较低。

02

时间序列资料的影响因素

      一个时间序列资料通常可以分解为确定性部分和随机部分。确定性部分又可进一步分解为趋势部分、循环或周期部分以及季节变动部分。

     将上图的时间序列资料分解,形成如下图,可看到:

     第一 趋势部分:反应长期的变化趋势,如上升或下降或平稳。下图的看来,虽然有起伏,但总的趋势是平稳的。

     第二 循环或周期部分:表现为围绕总体趋势水平出现有节奏的周期变动,如经济发展中出现时快时慢的周期变化。

     第三 季节变动,指在一个日历年份内因季节气候变化的影响发生的变动,每年都重复,一般受气候或人们生活方式影响的结果,下图三中表现的每年都呈现一个U型曲线,是一种明显的季节变动。当然,有的时间序列呈现周期波动,如门诊量由于受工作日影响而重复出现星期内波动。

      第四 不规则变动,它是除确定性部分之外的随机波动。如下图四。

R语言:时间序列(一)

03

几种时间序列

R语言:时间序列(一)

       社会生活中时间序列一般包含上述几个组分,如果只有不规则变动组成,不包含其他三种成分,那么就是上图1序列,称为平稳序列,数据围绕一个值上下波动,由于不规则变化,则无法预测下个时间是往上还是往下。如果包含一个向上的长期趋势,如图2,则为一个趋势序列。如果在平稳时间序列上加一个季节性变化,则如图3所示,称之为季节型序列。季节和趋势组合就是图四的形式,有一个向上的趋势,同时还有周期性变化。一般情况下不规则变化都是存在的。

04

重要的几个概念

         1.自相关函数

         在时间序列中,其前期状态对后续状态往往有影响,这种影响越大,相关性就越强,这种相关性就叫自相关。它有两个指标:自相关函数和偏自相关函数,它俩的作用是啥呢?自相关函数用acf表示,它可以检验时间序列在时间点t与滞后h期的时间点t-h的观察值之间是否存在显著自相关性。通过acf()函数计算自相关函数图:

R语言:时间序列(一)

R语言:时间序列(一)

      该图的横坐标Lag表示滞后期数h,纵坐标ACF给出每一滞后期h的自相关函数值。两条平行的横虚线分别代表95%可信区间的临界水平,凡是超过虚线的竖线条都具有统计学意义,原假设是自相关函数等于0,如果落在两虚线之间,则表示无统计学意义。

       从图可以看出,滞后0阶(h=0)恒等于1,这是PM10的自身相关性。将它的每一滞后期的自相关函数值打印出来可看到,前20期竖线都在虚线上面,函数值缓慢降低,各期都有统计学意义和自相关性,属于拖尾状态。

      2.偏相关性函数

     偏自相关函数又称PACF,它不同于自相关函数,它消除了其他观察值的影响后yt和y(t+h)单纯的相关关系。通过pacf()函数可计算得到:可看到滞后一期的相关函数值为0.72,具有高度统计学意义,之后下降很快,后面偏自相关函数在显著水平波动,处截尾状态。

R语言:时间序列(一)

R语言:时间序列(一)

      3.时间序列的平稳性

      实际工作中,只要满足①均值E(Yt)=u是与时间无关的常数;②方差是与时间无关的常数,Var(Yt)=γ。③协方差是只与时间间隔k有关,而与时间t无关的常数,Cov(Yt,Yt+k)=γ(0,k)就可以认为是平稳性序列。

     4.平稳性检验

      由于对时间序列资料分析的一个重要假设条件就是平稳性,因此很有必要先判断是否符合平稳性。

       ①直接观察ACF图,平稳的序列的自相关图和偏相关图不是拖尾就是截尾。截尾就是在某阶之后系数都为0,看上面偏相关的图,当阶数为1的时候,系数值还是很大是0.72 二阶长的时候突然就变成了 0.050. 后面的值都很小,认为是趋于0,这种状况就是截尾。再就是拖尾,拖尾就是有一个衰减的趋势,但是不都为 0,看上面自相关图.如果自相关图既不是拖尾也不是截尾,这里我们用文章开头的案例,计算滞后400阶的自相关图,如下图。下图的自相关是一个三角对称的形式,这种趋势是单调趋势的典型图形。这个案例是一个具有季节变动的不平稳时间序列。

R语言:时间序列(一)

       ①常用一个是tseries包中adf.test()函数做单位根检验,p>0.05表示是不能拒绝原假设,不平稳时间序列。检验文章开头的案例,P>0.05,不能拒绝原假设,表明该序列为非平稳时间序列。

     5.非平稳性怎么办呢?

     对于非平稳序列,如有具有某种趋势,则可以采用差分的方法消除这种趋势,从而达到平稳性。也可以采用对数的方式消除这种趋势,也可以联合数学变换和差分的方法消除,后面会详细介绍差分。

    6.几种基本的平稳时间序列模型
     1.自回归模型(AR)

    通常用AR(p)表示p阶自回归模型,用时间序列的一系列过去值和当前值建立自回归的关系。

      2.移动平均模型(MA)

     一个q阶的移动平均模型用MA(q)表示当前观察值是当前以及向后过去q阶白噪声的线性组合。

      3.自回归移动平均(ARMA)

      实际工作中大部分都是AR和MA的组合,这种模型表示为ARMA(p,q),前面介绍的acf和pacf可以帮助我们识别模型及其阶数。

05

总结

      本文作为时间序列的第一章,主要介绍时间序列中常用基本概念和术语,以方便对后面的建模深入理解。之后会针对不同的时间序列资料,讨论使用的不同的模型。

06

参考文献

  1. 彭晓武等.R软件及其环境流行病学应用.中国环境出版社

  2. Jonathan D.Cryer .时间序列分析及应用.机械工业出版社

  3. Cory Leismester.精通机器学习:基于R.人民邮电出版社

作者介绍:医疗大数据统计分析师,擅长R语言。

欢迎各位在后台留言,恳请斧正!

更多阅读:



以上是关于R语言:时间序列的主要内容,如果未能解决你的问题,请参考以下文章

R语言实战应用精讲50篇(三十二)-R语言实现单变量时间序列(附R语言代码)

90-预测分析-R语言实现-时间序列1

r语言arma-garch怎样预测

怎样用r语言 分时间段 取数据

R语言实战应用精讲50篇(十七)--使用R语言实现时间序列分析

R语言实战应用精讲50篇(十七)--使用R语言实现时间序列分析