当前位置: 首页 > news >正文

arma模型平稳性和可逆性的条件_时间序列 | 第四章 模型识别

1984d8e64b1c74055b1ba2c3309b84bc.png

前边三章我们都是在研究给定参数已知时,AR模型、MA模型、ARMA模型的性质,这些包括它们的期望、方差、协方差、自相关函数,平稳性以及可逆性。但实际中我们拿到的只有时间序列数据,这些数据到底来自于什么样的模型,这个模型是不是平稳,是不是可逆,只有上帝知道。

怎样运用所学知识将拿到的数据尽量地拟合出一个能够恰当地描述这些数据的模型,就是我们接下来几章要考虑的问题了。

以下给出的判断方法我们只是承认并运用,没有了解这些定理方法是怎么证出来的。


构造模型的策略 (Model-building strategy)

  • 模型识别
  • 模型拟合
  • 模型诊断

以上步骤是Box & Jenkins提出的。

具体到我们的时间序列课程,我们主要关注一系列平稳或者非平稳的参数模型——ARIMA(p,d,q)模型(其中d表示对 qq

d阶差分,且得到的
是平稳的):
其中
为零均值同方差的白噪声序列。

在限定了研究范围之后,我们的任务是:

  1. 为模型定阶,也就是选择恰当的
  2. 估计参数,包括
  3. 审查我们的模型,看是否合适

自相关函数 (ACF)

上一章我们已经提到过,MA(q)模型的自相关函数具有q阶截尾(也就是q阶之后的自相关函数值为0)的性质,且这个性质是MA独有的。对于AR(p)以及ARMA(p,q)来说,它们的自相关函数会随着阶数的增加以指数方式递减至向0,但不具有截尾的性质。

于是,一个很自然的想法就出来了:我们可以看看实际数据自相关函数的值,如果它在q阶之后为0了,那么我们可以认为这些数据来自于一个MA(q)模型。可问题是,我们并不知道总体的自相关函数值呀——那就用样本自相关函数去估计它。

样本自相关函数:对一组观测值
,样本自相关函数由下式给出:
其中
  • 需要注意的是,我们并没有假设这组观测值是平稳的
  • 一般计算的话,我们只会算到
定理:对于一个MA(q)模型来说,如果
,那么
,并且有当
时,

那么,我们如何来识别q呢?

Bartlett's approximation: 对于
来说,它的大致的95%置信区间为
  • 上述的置信区间作为我们对于原假设
    在置信水平为95%情形下的接受域。
  • R 中,1.96用2来代替了
  • 如果我们在观察了数据的样本自相关函数值之后,认为数据来自于一个AR模型,为了确定这个AR模型的阶q,我们将从
    开始检验,根据
    Bartlett's approximation,如果我们拒绝了
    ,那么接着检验
    是否为0,一直到我们无法拒绝某个
    为止,此时我们认为这个AR模型是
    阶的。
  • 在R中,画出ACF图,判断q将会非常的直观

偏自相关函数 (PACF)

偏自相关函数:滞后k阶偏自相关函数,记为
,是在移除了
的影响之后,
之间的相关系数。即

显然,偏自相关函数的计算十分复杂。我们通常根据以下形式来计算:

可以看出偏自相关函数是根据自相关函数得出的。

但是,你还记得AR(p)的Yule-walker equation吗?它是用来计算AR(p)的前p个自相关函数值的。如果这个模型是一个AR(p),当

的时候,如果令
,则上边的矩阵恰好就是我们的
Yule-walker equation形式,只不过换成了自相关函数值已知,来反解对应的
。于是,AR(p)拥有PACF的p阶截尾,即当
的时候

同样地,我们用样本的PACF来估计总体的PACF。

定理:对于AR(p)模型,
  • 定阶方法: 在决定使用AR(p)模型来拟合之后,通过样本ACF计算样本PACF,逐个比较直到
    落在区间
    内,则在95%显著性水平下我们认为数据来自于AR(k-1)

其它识别方法

对于ARMA(p,q)模型,它没有截尾的性质,我们一般用一些information criteria来帮助定阶

AIC(Akaike's information criterion): 寻找最小化
的模型,其中
为参数的个数。
  • 对于ARMA(p,q),若有截距项,则k=p+q+1;若没有截距项,k=p+q
  • 一般用R直接算不同p,q下模型的AIC,然后选择最小AIC的模型
  • 应用中最常使用
BIC(Bayesian information criterion):寻找最小化
的模型,
同上。
  • 一般用于理论

非平稳

ACF的定义要求模型是平稳的。对于一个非平稳的时间序列来说,样本ACF会随着滞后阶数的增加而decay,这是由于非平稳的时间序列会有漂移倾向决定的。所以我们看一个时间序列是否平稳,首先可以直接画出样本ACF图,如果样本ACF图decay,那我们直观上认为是不平稳的。不平稳的时间序列,我们可以进行差分,或者取对数。

如果一个时间序列本身就是平稳的,我们还对它进行差分,它仍然是一个平稳的时间序列,但这样就是过分差分了。过分差分后,我们又多了一个量来解释差分后的

,除此之外,模型可能变得不可逆,给模型选择以及参数估计造成很大困扰。所以尽量不要过分差分。

样本ACF decay通常暗示着时间序列非平稳,暗示着我们要去做差分。如何来判断一个时间序列是不是满足本身不平稳但一阶差分之后平稳,也可以使用假设检验的方法。可我们怎么将问题用统计语言表达出来呢?

先考虑模型

,其中
是平稳序列。如果
,那么
非平稳,但一阶差分后模型是平稳的;若
则过程平稳。在前边叙述的限制条件下,我们做以下的假设检验:

模型本身不平稳但一阶差分后平稳 V.S
模型本身平稳

等价于

V.S.

在原假设正确的情况下,我们有

。在原假设成立的前提下,倘若我们一阶差分后得到的
是一个AR(k),那么我们原来的模型可以写成

通常我们利用第二个式子来做检验。这里

考虑3种情况:

我们课程的要求其实最重要的是会用,在利用ADF检验之后,如果发现p值很小,我们有充分理由拒绝原假设。

需要注意的是,如果我们没有拒绝原假设,则说明序列不平稳,如果我们拒绝了原假设,并不能说明序列一定是平稳的,还要结合ACF图以及其它方法来看。

相关文章:

  • matlab中cvx例子_机器学习中的相似性度量总结
  • 8266连接mqtt发送消息_未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~...
  • 容器删除元素后迭代器失效_Java容器类源码分析之Iterator与ListIterator迭代器(基于JDK8)...
  • 3训练模型代码详解_一行代码不用写,就可以训练模型?
  • 计算各种形钢的重量用什么软件_钢结构防火防腐工程预算工程量计算方法
  • 神经网络训练的时间越来越长_基于对抗训练深度神经网络的时间序列分类
  • idea svn查看提交人_idea+svn看不到以前的版本记录,只能看往后的提交记录。先前的都用svnadmin表示了,为什么?...
  • 源码剖析_Scrapy 源码剖析(一)架构概览
  • linux4.1.15 rt补丁_听说你不知道 RT-Thread 有个 ringbuffer
  • python爬虫语言都能干什么_Python爬虫还能干什么?
  • xxl子任务_XXL-JOB(1) 分布式任务系统选型和XXL-JOB介绍
  • 徐小湛概率论与数理统计课件_考研数学 徐小湛教授线性代数90讲
  • 怎么下载python笔记_python学习笔记(1)python下载及运行
  • vue 给checkbox 赋值_vue中关于checkbox数据绑定v-model指令的个人理解
  • mysql中文乱码解决_java+mysql中文乱码问题
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • docker python 配置
  • JavaScript函数式编程(一)
  • Java教程_软件开发基础
  • LintCode 31. partitionArray 数组划分
  • linux安装openssl、swoole等扩展的具体步骤
  • SSH 免密登录
  • 机器学习学习笔记一
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 开发基于以太坊智能合约的DApp
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 通信类
  • 小李飞刀:SQL题目刷起来!
  • 由插件封装引出的一丢丢思考
  • 字符串匹配基础上
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #define 用法
  • #Z0458. 树的中心2
  • ()、[]、{}、(())、[[]]命令替换
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)共用体union的用法举例
  • (vue)页面文件上传获取:action地址
  • (多级缓存)多级缓存
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • @Controller和@RestController的区别?
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [.NET]桃源网络硬盘 v7.4
  • [30期] 我的学习方法
  • [BUUCTF 2018]Online Tool(特详解)
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)