时间序列分析 - 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

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus