学习笔记
参考书目:《计量经济学》、《计量经济学模型及R语言应用》、《时间序列分析及应用R语言》


时间序列分析之基本概念

时间序列的含义

从统计上来说,时间序列就是将某一个指标在不同时间上的不同数值,按照时间的先后顺序排列而成的序列。

从数学意义上讲,设X(t)(t∈T)X(t)(t\in T)X(t)(t∈T)是一个随机过程,Xi(i=1,2,...,n)X_{i}(i=1,2,...,n)Xi​(i=1,2,...,n)是在时刻iii对过程X(t)X(t)X(t)的观测值,则Xi(i=1,2,...,n)X_{i}(i=1,2,...,n)Xi​(i=1,2,...,n)称为一次样本实现,也就是一个时间序列。

从系统意义上来说,时间序列就是某一系统在不同时间(地点、条件等)的响应。这个定义不仅指出时间序列是按照一定顺序排列而成的,而且这里的一定顺序不一定是指时间顺序,也可以是具有各种不同意义的物理量。

时间序列的分类

  • 按研究对象的多少分类:单变量时间序列和多变量时间序列。

多变量时间序列不仅描述了各个变量的变化规律,而且揭示了各变量间的相互依存关系的动态规律性。

  • 按时间的连续性分类:离散时间序列和连续时间序列

  • 按序列的统计特性分类:平稳时间序列和非平稳时间序列

随机过程是否具有平稳性对于时间序列预测十分重要,这一性质保证了随机过程的结构不会随着时间变化,这是准确预测的必要条件。

  • 按时间序列的分布规律分类:高斯时间序列和非高斯时间序列

服从高斯分布的时间序列叫高斯时间序列,否则为非高斯时间序列。对于某些非高斯时间序列,往往可以经过适当变换,近似看成高斯时间序列。

平稳和非平稳

  • 平稳随机过程

假设某一时间序列是由某个随机过程生成的,即假定时间序列Xt(t=1,2,...,n)X_{t}(t=1,2,...,n)Xt​(t=1,2,...,n)的每个数值都是从一个概率分布中随机得到的,如果XtX_{t}Xt​满足下列条件:

①均值E(Xt)=μE(X_{t})=\muE(Xt​)=μ,均值是与时间ttt无关的常数

②方差Var(Xt)=σ2Var(X_{t})=\sigma^2Var(Xt​)=σ2,方差是与时间ttt无关的常数

③协方差Cov(Xt,Xt+k)=γkCov(X_{t},X_{t+k})=\gamma_kCov(Xt​,Xt+k​)=γk​,协方差只与时间间隔kkk有关.

则称该随机时间序列是款平稳的,该随机过程是一个平稳随机过程。

  • 白噪声

举个平稳时间序列的例子:白噪声

最简单的随机时间序列XtX_{t}Xt​是一个具有零均值同方差的独立分布序列:
Xt=μt,μt∼N(0,σ2)X_{t}=\mu_{t}, \quad \mu_{t} \sim N(0, \sigma^2) Xt​=μt​,μt​∼N(0,σ2)
则该序列常被称为是一个白噪声。

  • 随机游走

举一个非平稳时间序列的例子:随机游走

有如下随机过程生成:
Xt=Xt−1+μtX_{t}=X_{t-1}+\mu_{t} Xt​=Xt−1​+μt​
这里μt\mu_tμt​是一个白噪声。

容易知道,该序列有相同的均值E(Xt)=E(Xt−1)E(X_{t})=E(X_{t-1})E(Xt​)=E(Xt−1​).为了检验该序列是否具有相同的方差,可假设XtX_{t}Xt​的初值为X0X_{0}X0​,则易知:
X1=X0+μ1X2=X1+μ2=X0+μ1+μ2Xt=X0+μ1+μ2+...+μtX_{1}=X_{0}+\mu_{1} \\X_{2}=X_{1}+\mu_{2} = X_{0}+\mu_{1}+\mu_{2} \\X_{t}=X_{0}+\mu_{1}+\mu_{2}+...+\mu_{t} X1​=X0​+μ1​X2​=X1​+μ2​=X0​+μ1​+μ2​Xt​=X0​+μ1​+μ2​+...+μt​
设初值X0X_{0}X0​为常数,μt\mu_{t}μt​是白噪声,则Var(Xt)=tσ2Var(X_{t})=t\sigma^2Var(Xt​)=tσ2,即XtX_{t}Xt​的方差与时间ttt有关而非常数,故他是非平稳时间序列。

  • 图示

给出一个随机时间序列,首先可通过该序列的时序图来粗略地判断它是否是平稳的。平稳时间序列在图形上往往表现出种围绕其均值不断波动的过程,而非平稳时间序列往往表现出在不同的时间段具有不同的均值(如持续上升或持续下降)

时间序列的自相关性

自相关函数ACF

自相关函数是衡量序列yty_tyt​中任意两个元素之间相关程度的度量。对于随机过程{yty_tyt​},元素yty_tyt​与yt+ky_{t+k}yt+k​之间的自相关函数定义如下:
ρk=cov(yt,yt+k)var(yt)var(yt+k)\rho_k=\frac{cov(y_t,y_{t+k})}{\sqrt{var(y_t)var(y_{t+k})}} ρk​=var(yt​)var(yt+k​)​cov(yt​,yt+k​)​
自相关系数ρk\rho_kρk​的序列{ρk\rho_kρk​}(k=0,±1,±2,...k=0,\pm1, \pm2, ...k=0,±1,±2,...),称为自相关函数(ACF)

当yty_tyt​为平稳随机过程时:
ρk=γkγ0=cov(yt,yt+k)var(yt)\rho_k=\frac{\gamma_k}{\gamma_0}=\frac{cov(y_t,y_{t+k})}{var(y_t)} ρk​=γ0​γk​​=var(yt​)cov(yt​,yt+k​)​
由定义知,对任意随机过程ρ0=1\rho_0=1ρ0​=1,由公式可知,ρk\rho_kρk​是一个无量纲量。γk\gamma_kγk​是时间序列滞后kkk期的协方差,γ0\gamma_0γ0​为方差,因此自相关函数是关于滞后期kkk的递减函数。

在实际计算中,我们只能计算样本自相关函数,其样本自相关函数定义为:
ρk^=∑i=1n−k(yt−y‾)(yy+k−y‾)∑i=1n(yt−y‾)2k=1,2,3...\hat{\rho_k}=\frac{\sum_{i=1}^{n-k}(y_t- {\overline{y}})(y_{y+k}- {\overline{y}}) }{\sum_{i=1}^{n}(y_t - {\overline{y}})^2}\quad k=1,2,3... ρk​^​=∑i=1n​(yt​−y​)2∑i=1n−k​(yt​−y​)(yy+k​−y​)​k=1,2,3...

  • 图示

随着kkk的增加,样本自相关函数下降且趋于0.但从下降速度来看,平稳序列要比非平稳序列快得多。

自相关性判别

  • 图示法

时间序列模型着重研究的是样本关系,因此自相关函数在样本中占有重要地位。

我们可以绘制滞后q期(Yt−qY_{t-q}Yt−q​)与当期(YtY_{t}Yt​)的散点图,来判断是否存在自相关性。

也可以绘制acf图来判断时间序列数据的自相关性情况。值得注意的是,若存在yty_tyt​与yt+ky_{t+k}yt+k​之间的样本自相关函数ρk^\hat{\rho_k}ρk​^​,满足|ρk^\hat{\rho_k}ρk​^​|<1.96n\frac{1.96}{\sqrt{n}}n​1.96​,我们就有95%的把握判断原时间序列不存在k阶自相关。阈值1.96n\frac{1.96}{\sqrt{n}}n​1.96​,在acf图中应该会以虚线标出。

  • 假设检验

①Box-Pierce检验

伯克斯和皮尔斯提出的Q统计量,可以检验时间序列的相关性,Q统计量定义为:
Q=n∑k=1mρk^2∼χ2(m)Q=n{\sum_{k=1}^{m}\hat{\rho_k}^2}\sim\chi^2(m) Q=nk=1∑m​ρk​^​2∼χ2(m)
其中,样本量为你,m为滞后长度。在大样本情况下,它近似服从自由度为m的χ2\chi^2χ2分布。若计算出的Q值大于一定显著性水平下χ2\chi^2χ2分布的临界值,则拒绝所有ρk\rho_kρk​同时为0的原假设,则序列存在自相关性。

②Ljung-Box检验

巴特雷特曾证明,如果时间序列由白噪声过程生成,则对所有的k>0k>0k>0,样本自相关系数近似地服从均值为0、方差为1/n的正态分布,其中n为样本量。也可检验对所有的k>0k>0k>0,自相关系数都为0的联合假设,这可通过如下QLBQ_{LB}QLB​统计量进行:

QLB=n(n+2)∑k=1mρk^2n−k∼χ2(m)Q_{LB}=n(n+2)\sum_{k=1}^{m}\frac{\hat{\rho_k}^2}{n-k}\sim\chi^2(m) QLB​=n(n+2)k=1∑m​n−kρk​^​2​∼χ2(m)

该统计量近似地服从自由度为m的χ2\chi^2χ2分布.因此,如果计算的Q值大于显著性水平α\alphaα的临界值,则有1−α1-\alpha1−α的把握拒绝所有ρk(k>0)\rho_k(k>0)ρk​(k>0)同时为0的假设。

QLBQ_{LB}QLB​统计量比Q统计量有更好的小样本性(也就是在统计意义上更有效),所以QLBQ_{LB}QLB​统计量常用来检验小样本的序列相关性。

R语言实现

绘制滞后一期与当期散点图:

library(TSA)y <- c(55,52,42,32,37,36,57,66,66,62,45,77,78,60,65)plot(y, x = zlag(y, 1), xlab = expression(Y[t-1]), ylab = expression(Y[t]), type = 'p', main = '滞后一期与当期的散点图')

图像:

由上图可以看出yty_tyt​与yt−1y_{t-1}yt−1​貌似有那么点相关性。

绘制acf图:

acf(y, main = '自相关图')

图像:

可以看到一阶自相关系数显著,则可能存在一阶自相关性。

计算自相关系数:

acf(y)$ac

控制台输出:

             [,1][1,]  0.56735082[2,]  0.25659445[3,]  0.11299886[4,] -0.04724439[5,]  0.02717598[6,] -0.12748005[7,] -0.20916002[8,] -0.30212847[9,] -0.36191562
[10,] -0.22478145
[11,] -0.12675789

Ljung-Box检验:

Box.test(y, type = 'Ljung-Box')

控制台输出:

 Box-Ljung testdata:  y
X-squared = 5.8629, df = 1, p-value = 0.01546

可以看到p值小于0.05的显著性水平,则拒绝原假设,序列存在自相关性。

时间序列与R语言应用(part1)--时间序列基本概念相关推荐

  1. R语言ggplot2可视化时间序列散点图、X轴和Y轴都是时间信息、使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis)

    R语言ggplot2可视化时间序列散点图.X轴和Y轴都是时间信息.使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis) 目录

  2. R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势

    R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势 目录 R语言ggplot2可视化时间序列数据并添

  3. R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)

    R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot) 目录

  4. R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注、特殊区域标注

    R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注.特殊区域标注 目录

  5. 【R语言学习】时间序列

    时序分析会用到的函数 函数 程序包 用途 ts() stats 生成时序对象 plot() graphics 画出时间序列的折线图 start() stats 返回时间序列的开始时间 end() st ...

  6. 时间序列与R语言应用(part4)--自回归AR模型及其平稳性条件

    学习笔记 参考书目:<计量经济学>.<时间序列分析及应用R语言>.<计量经济学基础>.<计量经济学模型与R语言应用> 文章目录 为什么平稳如此重要 自回 ...

  7. 时间序列与R语言应用(part3)--趋势平稳与差分平稳

    学习笔记 参考书籍:<计量经济学> PS:本系列停更1天(0408恢复更新),想先更新隔壁的Xpath和离群点检测 趋势平稳与差分平稳 趋势平稳与差分平稳随机过程 虚假回归 一些非平稳的经 ...

  8. 利用R语言画简单时间序列图

    R 语言无法自动将读取的数据转化为时间序列格式, 所以利用R语言画时间序列图的一个关键步骤就是将读取的数据转变为时间序列格式, 下面是一个简单的程序: # 读取数据, 首先将excel 格式的转化为 ...

  9. r语言随机森林_随机森林+时间序列(R语言版)

    参考自: https://www.statworx.com/at/blog/time-series-forecasting-with-random-forest/ https://www.r-blog ...

最新文章

  1. 【Boost】系列01:时间与日期
  2. Python内置数据结构之双向队列
  3. ICO流程,casestudy
  4. 设计模式复习-策略模式
  5. These dependencies were not found: *!!vue-style-loader!css-loader?
  6. etcd集群部署与遇到的坑(转)
  7. 开源|如何开发一个高性能的redis cluster proxy?
  8. JavaWeb学习之路——jsp与serverlet(一)
  9. 启动Nginx 出现 nginx: [emerg] unknown directive 锘?user 错误
  10. c语言设计二级考试程序修改题,全国计算机二级考试C语言复习题与答案解析
  11. excel教程自学网_想学习PS和视频剪辑,自学,有哪些好的学习网站和资源吗?
  12. PYTHON: PYENV, PYVENV, VIRTUALENV – WHAT’S THE DIFFERENCE?
  13. 新媒体推广之标题写作的4项原则+6大元素,爆款标题一招就够了! | 黎想
  14. 纯前端滑块拼图验证组件(多端兼容)
  15. 在用AI死磕垃圾分类这件小事上,麻省理工、MaxAI们创造了这些利器,神助攻还是花拳绣腿?...
  16. “酸甜苦辣”说华育(我一个学员的学习心得)
  17. linux内核和发行版有什么区别?附镜像包以及如何查看Linux系统内核版本和发行版本
  18. nginx alias php,Nginx设置alias实现虚拟目录 alias与root的用法区别
  19. 数学美 之 判断线段相交的最简方法
  20. centos7 搭建深度学习环境

热门文章

  1. leetcode:图相关算法
  2. 深度学习(五)——DRN, Bi-directional RNN, Attention, seq2seq, DMN
  3. icd植入是大手术吗_白内障手术为何要植入人工晶体?便宜的人工晶体会影响视力吗?...
  4. dataset存入mysql_将dataset写入数据库
  5. 面试题解(2):loop相关
  6. maven项目,httpclient jar包冲突
  7. 两个月的微信小程序尝试
  8. LINUX下PHP安装VLD扩展并测试OK
  9. 关于Docker你应该知道的10件事
  10. 防止按钮重复点击 模型转字典 接口传参不能用汉字,要转码