为什么我的ARIMA模型可以工作(2,0,3),但是不能在第一个差异(2,1,3)中工作?

时间:2019-01-30 19:55:04

标签: r forecasting arima differentiation

在第一个差异(2,1,3)中运行Arima函数的内容是什么,但是我一直收到错误消息。但是,如果我运行它而没有差异(2,3),则可以正常工作。我究竟做错了什么。

数据= https://docs.google.com/spreadsheets/d/1cQvoI9kuF4wNEDBcJjDz5x60wgLSNjjBpECGJ0TnJYo/edit#gid=0

y=data[1:504] 
s=12
st=c(1976,1)
y=ts(y,frequency = s,start=st)

为时间序列创建季节性假人。

 S2 = rep(c(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), T/s)
    S3 = rep(c(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), T/s)
    S4 = rep(c(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0), T/s)
    S5 = rep(c(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0), T/s)
    S6 = rep(c(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), T/s)
    S7 = rep(c(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), T/s)
    S8 = rep(c(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), T/s)
    S9 = rep(c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), T/s)
    S10 = rep(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), T/s)
    S11 = rep(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), T/s)
    S12 = rep(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), T/s)

TrSeas = model.matrix(~ t+S2+S3+S4+S5+S6+S7+S8+S9+S10+S11+S12)
TrSeas 

此模型有效

ar3.model = arima(y,order = c(2,0,3),include.mean = FALSE,xreg = TrSeas)

先差者

arima213=Arima(y,order = c(2,1,3),xreg = TrSeas,include.mean = FALSE,include.drift = TRUE,method = "ML")

这给了我以下错误信息: optim(init [mask],armaCSS,method = optim.method,hessian = TRUE,中的错误:   optim提供的非限定值

1 个答案:

答案 0 :(得分:1)

在有马函数我们指定(P,d,Q)这里值D代表差异。 当我们的时间序列数据是季节性的,d将除去存在于数据中的季节性d被使用。 在这种情况下,您的数据不是季节性的,因此无需区分,它将在d = 0时起作用。 如果您的数据是季节性的,则可以区分。