文章目录
- 一、ARMA模型是什么?
- 二、建模过程
- 1.平稳性检验
- 2.阶数的确定
- 3.参数估计
- 4.模型检验
- 5.模型预测
一、ARMA模型是什么?
自回归滑动平均模型(英语:Autoregressive moving average model,简称:ARMA模型)。是研究时间序列的重要方法,由自回归模型(简称AR模型)与移动平均模型(简称MA模型)为基础“混合”构成。在市场研究中常用于长期追踪资料的研究,如:Panel研究中,用于消费行为模式变迁研究;在零售研究中,用于具有季节变动特征的销售量、市场规模的预测等。
二、建模步骤
1.平稳性检验
ARMA模型是针对平稳性时间序列提出的,因此,首先要确认序列满足平稳性条件。平稳性检验有两种方法:一是绘制时序图,二是用统计量(如自相关函数)来判断。若序列的时序图看不出有增长趋势,也没有循环波动,初步判定为平稳序列。随着延迟数的增加,平稳时间序列的自相关函数会很快向0衰减。
library(TSA)#加载程序包
data(color)
plot(color,xlab='批次',ylab='颜色属性')#绘制时序图
acf(color,lag=20)#绘制该序列的自相关函数图
结果如下,基本可以认定该序列是平稳的。
2.阶数的确定
自相关函数不是截尾,因此所建模型不是MA模型,应该是AR(q)或ARMA(p,q)模型。再通过偏自相关函数来判断,如图所示,偏自相关函数,延迟数大于1时均分布在两条虚线内,具有明显截尾性质。因此,应选取AR(1)模型。
pacf(color,lag=20)
3.参数估计及检验
<-arima(color,order=c(1,0,0))
由结果可知,系数的估计值分别为74.3293和0.5705,估计值的标准差为1.9151及0.1435,模型残差的方差为24.83,AIC统计量为216.15。
t_test<-function(object,alpha=0.05){
c<-object$coef
sd<-sqrt(diag(object$))
t<-abs(c/sd)
k<-sum(object$arma)
n<-object$nobs
Pvalue<-2*(1-pt(t,df=n-k))
t_alpha<-qt(1-alpha/2,df=n-k)
A<-rbind(c,c-t_alpha*sd,c+t_alpha*sd)
rownames(A)<-c("coef","lwr","upr")
list(p_value=Pvalue,confint=A)
}#模型检验(参数的区间估计、显著性检验)
t_test()
p值均小于0.05,因此参数的置信区间不包含0,估计的参数通过了检验。
4.模型诊断
诊断模型的残差是否近似具有白噪声的性质,即零均值、等方差、正态性。
#绘制标准化残差图、残差的自相关函数及Ljung-Box统计量的P值
tsdiag()
由图可知,标准化残差基本分布在零水平线附近,且在-2~2的范围内;自相关函数迅速下降到两条虚线内;Ljung-Box统计量P值均大于0.05,因此,模型通过检验。
5.模型预测
ARMA模型仅适合短期预测,所以这里仅预测后面5个批次的颜色属性。
<-predict(,=5)
以上就是今天要讲的内容,欢迎大家批评指正。