stats | 使用(偏)自相关函数判断ARMA模型的阶数

自回归移动平均(autoregressive moving-averge,ARMA)模型是时间序列分析中常用的方法。它由自回归和移动平均两部分构成。

阶自回归过程:

  • 其中, 。

阶移动平均过程:

  • 其中,。

自回归移动平均模型:

  • AR()、MA()过程分别可以看作是和时的特例。

判断ARMA模型的阶数一般使用自相关函数(ACF)和偏自相关函数(PACF);自相关系数和偏自相关系数分别使用和表示。

判断的标准如下:

  • 当和均不为0时,ACF和PCF呈现拖尾分布:

    • ACF:,从时开始衰减(可能直接,也可能震荡);

    • PACF:从时开始衰减(可能直接,也可能震荡)。

  • 当和时其中一个为0时:

    • 时为纯AR过程,PACF呈截尾分布,即在时为波峰(可正可负),之后为0;

    • 时为纯MA过程,ACF呈截尾分布,即在时为波峰(可正可负),之后为0。

上述两个函数在R语言中对应的函数分别是stats工具包中的acf()pacf()

AR(2)过程

set.seed(123)
p = rnorm(200)
y1 = rep(0,200)
for(i in c(3:200)){
  y1[i] = 0.7*y1[i-1] - 0.49*y1[i-2] + p[i]
}

layout(
  matrix(c(1,1,2,3), 2, byrow = T)
)
plot(y1[51:200], type = "l")
acf(y1[51:200])
pacf(y1[51:200])
578827af321fd3e8fc2869827912d0eb.png
  • 蓝色虚线内的值可以认为是不显著区别于0;

  • ACF特征:拖尾分布;从起点处就开始震荡衰减;

  • PACF特征:截尾分布;在处取得波峰(负峰),之后为0。

MA(1)过程

set.seed(456)
p = rnorm(200)
y2 = rep(0,200)
for(i in c(4:200)){
  y2[i] = p[i] - 0.7*p[i-1]
}

layout(
  matrix(c(1,1,2,3), 2, byrow = T)
)
plot(y2[51:200], type = "l")
acf(y2[51:200])
pacf(y2[51:200])
a9ee27153cd241792d38a2456abed2a2.png
  • ACF特征:截尾分布;在时取得波峰(负峰),之后为0;

  • PACF特征:拖尾分布;从起点处就开始衰减。

ARMA(3,2)过程

set.seed(123)
p = rnorm(200)
y3 = rep(0,200)
for(i in c(4:200)){
    y3[i] = 0.2*y3[i-1] - 0.1*y3[i-2] + 0.5*y3[i-3] + p[i] + 0.2*p[i-1] - 0.7*p[i-2]
}

layout(
  matrix(c(1,1,2,3), 2, byrow = T)
)
plot(y3[51:200], type = "l")
acf(y3[51:200])
pacf(y3[51:200])
81ab2481a9fe6800509862dd0692ce2d.png
  • ACF特征:拖尾分布;从处开始衰减(不明显);

  • PACF特征:拖尾分布;从处开始衰减(实际应为)。

使用(偏)自相关函数只能对ARMA模型的阶数作大致的判断,之后需要对系数进行估计和显著性检验来进行最终的判断。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值