时间序列分析 - ARMA/ARIMA参数估计及模型预测

2024-02-16 01:38

本文主要是介绍时间序列分析 - ARMA/ARIMA参数估计及模型预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

整体处理流程如下:

                                                  

【平稳化处理】

根据ADF单位根检验看序列是否平稳,对于非平稳序列可以进行差分,对数等等。

对于得到的平稳序列需要检测是否为白噪声,如果是就没有必要再分析了。

 

【白噪声检验】

1)由于白噪声序列期望为0,方差固定。因此会在y=0上下小幅波动,比如:

2) 白噪声仅与自己相关,任何lag时差的序列之间自相关值应该近似为0或者落在95%的置信区间以内,比如:

3) Ljung-Box Q统计量检验

p值小于5%,序列为非白噪声。

 

【自相关函数ACF与偏相关函数PACF】

假设时间序列在t时刻为Xt,在s时刻为Xs, 并且t-s=k

自相关函数ACF即为自相关系数:

\rho (k)=\rho (t,s)=\frac{\gamma(t,s)}{\sqrt{Variance(Xt)Variance(Xs)}}=\frac{\gamma (t,s)}{\sqrt{​{\sigma_{t}^{2}{\sigma_{s}^{2}}}}}

其中\gamma(t,s)=Covariance(Xt,Xs)=E[(Xt-\bar{Xt})(Xs-\bar{Xs})]=\gamma (k) 为自协方差。

对于平稳时间序列,方差恒定,上述公式可以写成:

\rho (k)=\frac{\gamma (k)}{\sigma ^{2}}

偏自相关函数则是考虑了时刻t与t-k之间的所有中间时刻时间序列的影响,用公式表示为:

\frac{Covariance(X_{t},X_{s}|X_{t-1},X_{t-2},...,X_{t-k+1})}{\sqrt{Variance(X_{t}|X_{t-1},X_{t-2},...,X_{t-k+1})Variance(X_{s}|X_{t-1},X_{t-2},...,X_{t-k+1})}}

分母为时刻t与s的条件自协方差,分子根号内为时刻t与s各自的条件方差。

 

【ARMA模型p,q定阶:截尾与拖尾】

截尾是指时间序列的自相关函数(ACF)或偏自相关函数(PACF)在某阶后均为0的性质(比如AR的PACF);不同于拖尾,拖尾是ACF或PACF并不在某阶后均为0的性质(比如AR的ACF)。

比如:

 

如何判断拖尾和截尾:

(1)如果样本自相关系数(或偏自相关系数)在最初的q阶明显大于2倍标准差范围,而后几乎95%的样本自相关(偏自相关)系数都落在2倍标准差范围以内,而且由非零自相关(偏自相关)系数衰减为小值波动的过程非常突然,这时,通常视为自相关(偏自相关)系数截尾。

(2)如果有超过5%的样本相关系数落在2倍标准差范围以外,或者是由显著非零的相关函数衰减为小值波动的过程比较缓慢或者非常连续,这时,通常视为相关系数不截尾。

根据序列的自相关函数和偏自相关函数的特征可以初步判断模型类型,如下表:

自相关函数(ACF)偏自相关函数(PACF)选择模型
拖尾p阶截尾AR(p)
q阶截尾拖尾MA(q)
p阶拖尾q阶拖尾ARMA(p,q)

 

【模型参数估计】

可以使用最小二乘或者极大似然估计法进行参数拟合。

 

【模型检验】

残差分析

残差是指实际观察值与估计值(拟合值)之间的差。如果模型足够准确,残差应该为白噪声,关于白噪声的检验方式可以看文初的论述。

 

【模型优化】

经过模型检验可能会得到若干个模型,为了避免过拟合,从中选择最好的一个,选择的准则可以是AIC或者BIC。

AIC (Akaike information criterion,赤池信息量) 可以表示为:

AIC=2k-2ln(L)

其中:k是参数的数量,L是似然函数。假设条件是模型的误差服从独立正态分布。

让n为观察数,SSR(SUM SQAURE OF RESIDUE)为残差平方和,那么AIC变为: AIC=2k+nln(SSR/n)

优先考虑的模型应是AIC值最小的那一个,即拟合数据的同时减少参数,以避免过拟合。

 

BIC (Bayesian information criterion, 贝叶斯信息准则),可以表示为:

 {\displaystyle \mathrm {BIC} =\ln(n)k-2\ln({\widehat {L}}).\ }

其中:

  • {\displaystyle {\hat {L}}=p(x\mid {\widehat {\theta }},M)}是模型M的极大释然估计,{\displaystyle {\widehat {\theta }}} 极大释然估计对应的参数;
  • x是观测样本;
  • n是观测样本数;
  • k 是模型的参数个数。

 

【模型预测】

根据最终模型来预测未来的数据。

 

 

参考:

https://blog.csdn.net/dingming001/article/details/73554949/

https://newonlinecourses.science.psu.edu/stat510/node/62/

https://en.wikipedia.org/wiki/Box%E2%80%93Jenkins_method

https://www.jianshu.com/p/124010e961e4

http://www.atyun.com/4462.html

 

 

这篇关于时间序列分析 - ARMA/ARIMA参数估计及模型预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713136

相关文章

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin