时间序列分析实战(五):ARIMA加法(疏系数)模型建模

简介: 时间序列分析实战(五):ARIMA加法(疏系数)模型建模

1 目的

  该篇文章主要展示针对时序进行ARIMA加法模型建模,并根据实际情况进行改进。案例数据同 时间序列分析实战(三):时序因素分解法:某欧洲小镇1963年1月至1976年12月每月旅馆入住的房间数构成时间序列x t x_txt

2 原序列差分处理

  从 时间序列分析实战(三):时序因素分解法一文中可知,该序列具有趋势和季节效应,进行1阶差分提取趋势效应,12步差分提取季节效应。

  运行程序:

#对原数据进行1阶12步差分
y=diff(diff(data1,12))
plot(y,sub='图1 入住房间数差分后序列时序图')

  运行结果:

图1 入住房间数差分后序列时序图

3 差分后序列平稳性检验

  运行程序:

#差分后序列平稳性检验
library(aTSA)
adf.test(y)

  运行结果:

## Augmented Dickey-Fuller Test 
## alternative: stationary 
##  
## Type 1: no drift no trend 
##      lag    ADF p.value
## [1,]   0 -19.56    0.01
## [2,]   1 -11.01    0.01
## [3,]   2 -10.63    0.01
## [4,]   3  -9.08    0.01
## [5,]   4 -10.57    0.01
## Type 2: with drift no trend 
##      lag    ADF p.value
## [1,]   0 -19.50    0.01
## [2,]   1 -10.98    0.01
## [3,]   2 -10.60    0.01
## [4,]   3  -9.05    0.01
## [5,]   4 -10.53    0.01
## Type 3: with drift and trend 
##      lag    ADF p.value
## [1,]   0 -19.44    0.01
## [2,]   1 -10.94    0.01
## [3,]   2 -10.56    0.01
## [4,]   3  -9.01    0.01
## [5,]   4 -10.49    0.01
## ---- 
## Note: in fact, p.value = 0.01 means p.value <= 0.01

4 差分后序列白噪声检验

  运行程序:

#差分后序列纯随机性检验
for(k in 1:2) print(Box.test(y,lag=6*k,type="Ljung-Box"))

  运行结果:

## 
##  Box-Ljung test
## 
## data:  y
## X-squared = 56.87, df = 6, p-value = 1.941e-10
## 
## 
##  Box-Ljung test
## 
## data:  y
## X-squared = 76.751, df = 12, p-value = 1.713e-11

  通过1阶12步差分后序列时序图(图1)显示差分后的序列没有明显趋势和周期特征了,ADF检验结果显示差分后序列平稳,纯随机性检验结果显示差分后序列为非白噪声序列,适合建模。

5 ARIMA模型建立

  考虑建立ARIMA加法模型:

image.png

6 ARIMA模型定阶

  运行程序:

par(mfrow=c(1,2))
acf(y)
title(sub="图2 入住房间数差分后序列自相关图(ACF)")
pacf(y)
title(sub="图2 入住房间数差分后序列偏自相关图(PACF)")

  运行结果:

图2 入住房间数差分后序列自相关图(ACF)(左)& 偏自相关图(PACF)(右)

  差分后序列的自相关图和偏自相关图(图2)显示,自相关系数和偏自相关系数都显示出拖尾的性质。经过多次尝试之后,直到ARMA(1,6),模型才通过了显著性检验,再考虑到之前的差分运算,实际上拟合的是加法模型:ARIMA(1,1,6)×(0,1,0)12

7 ARIMA模型拟合

  运行程序:

#拟合加法ARIMA模型
fit2=arima(data1,order = c(1,1,6),seasonal = list(order=c(0,1,0),period=12),transform.pars = F)
fit2

  运行结果:

## 
## Call:
## arima(x = data1, order = c(1, 1, 6), seasonal = list(order = c(0, 1, 0), period = 12), 
##     transform.pars = F)
## 
## Coefficients:
##           ar1      ma1      ma2      ma3      ma4      ma5     ma6
##       -0.3848  -0.5833  -0.5015  -0.2828  -0.0814  -0.0647  0.5148
## s.e.   0.1739   0.1663   0.1787   0.0933   0.1072   0.0893  0.0941
## 
## sigma^2 estimated as 221.7:  log likelihood = -645.52,  aic = 1307.03

8 ARIMA模型显著性检验

  运行程序:

#模型显著性检验
ts.diag(fit2)
title(sub="图3 ARIMA(1,(1,12),6)模型显著性检验")

  运行结果:

图3 ARIMA(1,(1,12),6)模型显著性检验

  此时,参数θ 4 \theta_4θ4θ 5 \theta_5θ5的估计值在两倍标准差外,未通过显著性检验,所以考虑拟合疏系数模型ARIMA(1,(1,2,3,6)),再考虑到之前的差分运算,实际上拟合的是加法模型ARIMA(1,1,(1,2,3,6))×(0,1,0)12

9 ARIMA加法疏系数模型

  运行程序:

#拟合加法ARIMA模型
fit3=arima(data1,order = c(1,1,6),seasonal = list(order=c(0,1,0),period=12),
           transform.pars = F,fixed=c(NA,NA,NA,NA,0,0,NA))
fit3

  运行结果:

## 
## Call:
## arima(x = data1, order = c(1, 1, 6), seasonal = list(order = c(0, 1, 0), period = 12), 
##     transform.pars = F, fixed = c(NA, NA, NA, NA, 0, 0, NA))
## 
## Coefficients:
##           ar1      ma1      ma2      ma3  ma4  ma5     ma6
##       -0.4201  -0.6015  -0.5797  -0.2909    0    0  0.4730
## s.e.   0.1958   0.1918   0.2185   0.0997    0    0  0.0982
## 
## sigma^2 estimated as 211.5:  log likelihood = -646.01,  aic = 1304.02

10 ARIMA加法疏系数模型显著性检验

  运行程序:

#模型显著性检验
ts.diag(fit3)
title(sub="图4 ARIMA(1,(1,12),(1,2,3,6))模型显著性检验")

  运行结果:

图4 ARIMA(1,(1,12),(1,2,3,6))模型显著性检验

image.png


相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33078 81
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17818 24
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36801 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24873 15
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36786 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29925 52

热门文章

最新文章