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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与