R语言时序-AR、MA与ARMA的判断及定阶

本文详细介绍了如何通过ACF(自相关函数)和PACF(偏自相关函数)图来判断ARIMA模型的阶数。ACF图中,截尾特征对应MA模型,拖尾则可能是AR或ARMA模型;PACF图中,截尾对应AR模型,拖尾则指向ARMA模型。通过观察滞后阶数超出2倍标准差的线的数量,可以确定模型的阶数。对于无法直接判断的情况,可以借助eacf等方法进一步定阶。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


模型判断:

ACF拖尾ACF截尾
PACF拖尾ARMA(p,q)MA(q)
PACF截尾AR(p )序列本身不存在明显的自相关性,ARMA类模型可能不适用
  • Step1 看ACF图:
    – ACF截尾:判断为MA(q)模型,q为最后一个超出2倍标准差(蓝线)的阶数,即超出水平蓝线的纵向线水量-1。
    – ACF拖尾:可能为AR( p)模型也可能为ARMA(p,q)模型
  • Step2 看PACF图:
    – PACF截尾:AR( p)模型,p为最后一个超出2倍标准差(蓝线)的阶数,即超出水平蓝线的纵向线数量 。
    – PACF拖尾:ARMA(p,q)模型,ACF和PACF看不出阶数,通过eacf定阶

【注1】传统R语言绘制的ACF图第一根竖线的阶数为零,MA(1)有两根竖线超出蓝线,但第二根的阶数不是2是1,以此类推


(1) MA
MA(1): x t = ε t + 0.4 ε t − 1 x_t = \varepsilon_t + 0.4\varepsilon_{t-1} xt=εt+0.4εt1
MA(2): x t = ε t + 0.4 ε t − 1 − 0.7 ε t − 2 x_t = \varepsilon_t + 0.4\varepsilon_{t-1} - 0.7\varepsilon_{t-2} xt=εt+0.4εt10.7εt2
MA(3): x t = ε t + 0.4 ε t − 1 − 0.7 ε t − 2 + 0.5 ε t − 3 x_t = \varepsilon_t + 0.4\varepsilon_{t-1} - 0.7\varepsilon_{t-2} + 0.5\varepsilon_{t-3} xt=εt+0.4εt10.7εt2+0.5εt3

ma1 <- arima.sim(n=1000, list(ma=0.4))
ma2 <- arima.sim(n=1000, list(ma=c(0.4,-0.7)))
ma3 <- arima.sim(n=1000,list(ma=c(0.4,-0.7, 0.5)))
par(mfcol=c(2,3))
ma1a <- acf(ma1)
ma1p <- pacf(ma1)
ma2a <- acf(ma2)
ma2p <- pacf(ma2)
ma3a <- acf(ma3)
ma3p <- pacf(ma3)

在这里插入图片描述
看ACF图,首先可判断上三幅ACF都是截尾,均为MA模型 。
左边ACF图第1条线对应滞后阶数为0,第2条线对应滞后阶数为1,以超出2倍标准差的最大滞后阶数作为MA模型的阶数,此时ACF超出蓝线的最大滞后阶数为1,故左边第一组应为MA(1)模型;
中间ACF图最后1条超出2被标准差水平线的纵向线阶数为2,有3条纵向线超出2倍标准差线,判断为MA(2)模型;
右边ACF图最后1条超出2被标准差水平线的纵向线阶数为3,有4条纵向线超出2倍标准差线,判断为MA(3)模型;

(2) AR
AR(1): x t = 0.8 x t − 1 + ε t x_t = 0.8x_{t-1}+\varepsilon_t xt=0.8xt1+εt
AR(2): x t = − x t − 1 − 0.5 x t − 2 + ε t x_t = -x_{t-1}-0.5x_{t-2}+\varepsilon_t xt=xt10.5xt2+εt
AR(3): x t = x t − 1 − 0.5 x t − 2 + 0.3 x t − 3 + ε t x_t = x_{t-1} - 0.5x_{t-2} + 0.3x_{t-3}+\varepsilon_t xt=xt10.5xt2+0.3xt3+εt

ar1 <- arima.sim(n=1000, list(ar=0.8))
ar2 <- arima.sim(n=1000, list(ar=c(-1,-0.5)))
ar3 <- arima.sim(n=1000, list(ar=c(1,-0.5,0.3)))

在这里插入图片描述
从图倒推,首先ACF图皆为拖尾,可判断未AR或者ARMA模型;再看PACF图:
左边PACF图明显截尾状态,最后一个超出2倍标准差(蓝线)的阶数为1(有1根纵向线超过2倍标准差),故为AR(1)模型;
中间PACF图截尾,最后一个超出2倍标准差(蓝线)的阶数为2,判断为AR(2)模型;
右变PACF图中最后一个超出2倍标准差(蓝线)的阶数为3,判断为AR(3)模型。

(3) ARMA(p,q)
ARMA(1,1): x t = 0.8 x t − 1 + ε t + 0.4 ε t − 1 x_t = 0.8x_{t-1} + \varepsilon_t + 0.4\varepsilon_{t-1} xt=0.8xt1+εt+0.4εt1
ARMA(2,1): x t = 0.8 x t − 1 − 0.4 x t − 2 + ε t + 0.4 ε t − 1 x_t = 0.8x_{t-1} - 0.4x_{t-2} + \varepsilon_t + 0.4\varepsilon_{t-1} xt=0.8xt10.4xt2+εt+0.4εt1
ARMA(1,2): x t = 0.8 x t − 1 + ε t + 0.4 ε t − 1 + 0.7 ε t − 2 x_t = 0.8x_{t-1} + \varepsilon_t + 0.4\varepsilon_{t-1} + 0.7\varepsilon_{t-2} xt=0.8xt1+εt+0.4εt1+0.7εt2

arma11 <- arima.sim(n=1000,list(sr=0.8,ma=0.4))
arma21 <- arima.sim(n=1000,list(ar=c(0.8, -0.4),ma=0,4))
arma12 <- arima.sim(n=1000,list(ar=0.8, ma=c(0.4,0.7)))

在这里插入图片描述
ACF图皆为拖尾,判断为AR模型或ARMA模型;
PACF图也为拖尾,判断为ARMA模型,阶数无法通过ACF和PACF图看出。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值