Построение подобранной модели Sarima в R

#r #time-series

#r #временные ряды

Вопрос:

Я пытаюсь оценить подгонку и прогнозирование модели SARIMA, которую я создал с помощью R, но как только я пытаюсь построить подобранную модель вместе с исходным рядом, я получаю сообщение об ошибке от R. Я не понимаю, почему.

Далее следует код

 fit4<-Arima(fatturati, order=c(1,0,0), seasonal=c(1,1,0))
fit4
Series: fatturati 
ARIMA(1,0,0)(1,1,0)[12]                    

Coefficients:
         ar1     sar1
      0.4749  -0.6135
s.e.  0.1602   0.1556

sigma^2 estimated as 4.773e 10:  log likelihood=-454.47
AIC=914.94   AICc=915.76   BIC=919.43
tsdisplay(residuals(fit4))
Box.test(residuals(fit4), lag=16, fitdf=4, type="Ljung")

    Box-Ljung test

data:  residuals(fit4)
X-squared = 10.15, df = 12, p-value = 0.6028
plot(fit4$x,col="red")
lines(fitted(fit4),col="blue")
Error in NextMethod(.Generic) : cannot assign 'tsp' to zero-length vector
  

Как я могу этим управлять?

***** ОБНОВЛЕНИЕ ****** Все пакеты обновлены. Кажется, все просто отлично, но как только я пытаюсь построить подобранные данные, я получаю ту же ошибку. далее следует код

 fatturati<-read.ts("F:/dati.csv", header=TRUE, start=2013, frequency=12)
ft=fatturati
ft
         Jan     Feb     Mar     Apr     May     Jun     Jul     Aug         Sep     Oct     Nov     Dec
2013  397677  642630 1259336 1220071 1883674 1444910  783430  422713     1037768 1046658 1210702  658286
2014  482081  822558 1179159  848265 1235270 1219770  461692  452579     1076500  770226  646424  872482
2015  705441  863377 1104483  944880 1379004 1230724  922313  225545     1064701  721959  728487  738779
2016  586530  939034 1632165 1337850 1697783 1290279  462190  520914     1296145                        
class(ft)
[1] "ts"
arima_fatturati<-Arima(fatturati, order=c(1,0,0), seasonal=c(1,0,0))
arima_fatturati
Series: fatturati 
ARIMA(1,0,0)(1,0,0)[12] with non-zero mean 

Coefficients:
         ar1    sar1  intercept
      0.3405  0.7370   977132.9
s.e.  0.1408  0.0973   133573.8

sigma^2 estimated as 6.497e 10:  log likelihood=-627.25
AIC=1262.5   AICc=1263.5   BIC=1269.72
plot(arima_fatturati$x, col="red")
lines(fitted.Arima(arima_fatturati), col="blue")
Error in NextMethod(.Generic) : cannot assign 'tsp' to zero-length vector
  

Ответ №1:

У меня нет проблем со следующим кодом, использующим набор данных, включенный в forecast пакет:

 library(forecast)
arima_wind = Arima(y = wineind, order = c(1, 0, 1), seasonal = c(1, 1, 0))
plot(arima_wind$x)
lines(fitted.Arima(arima_wind), col = "blue")
  

Обновите версию forecast этого, вы должны быть уверены, что это не проблема с версией, но я предполагаю, что это связано с вашим конкретным ts объектом. Возможно, вы захотите опубликовать данные, которые воспроизводят проблему.

Комментарии:

1. Извините, я ошибочно нажал Enter botton и был загружен частичный комментарий.

2. @Mark_ Пожалуйста, укажите ваши данные в несколько более удобном формате, например, вы могли бы загрузить CSV-файл в Dropbox или Google Drive.

Ответ №2:

Вам не нужно использовать fitted() для извлечения подобранных значений. Вы должны иметь возможность получить к ним прямой доступ с помощью $fitted например fit4$fitted .