Почему моя модель ARIMA работает (2,0,3), но не в первом отличии (2,1,3)?

Что запускать функцию arima в первом отличии (2,1,3), но я продолжаю получать сообщение об ошибке. Однако, если я запустил его без разницы (2,3), он сработает. Что я делаю неправильно.

Data = 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 [маска], armaCSS, method = optim.method, hessian = TRUE,: неконечное значение, предоставленное optim


person Philip Olsson    schedule 30.01.2019    source источник


Ответы (1)


В функции arima мы указываем значения (p, d, q), здесь d обозначает разницу. d используется, когда данные нашего временного ряда являются сезонными, а d удаляет сезонность, присутствующую в данных. Здесь в вашем случае данные не сезонные, поэтому не нужно дифференцировать, он будет работать при d = 0. Если ваши данные сезонные, вы можете дифференцировать их.

person Zeeshan    schedule 31.01.2019
comment
спасибо за Ваш ответ. Однако мой временной ряд имеет единичный корень, поэтому я предпочитаю его различать. Итак, я моделирую стохастическую модель с дрейфом. Различие делает его стационарным. Тогда ваш ответ все еще применим? - person Philip Olsson; 01.02.2019
comment
@ phillip Используйте auto.arima (), вам не нужно беспокоиться о значениях (p, d, q). auto.arima () автоматически принимает лучшее значение. - person Zeeshan; 08.02.2019