#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
.