在R中绘制一个合适的Sarima模型

时间:2016-10-22 16:04:16

标签: r time-series

我正在尝试评估我用R生成的SARIMA模型的拟合和预测,但是,一旦我尝试将拟合模型与原始系列一起绘制,我收到来自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

我该如何管理?

***** UPDATE ****** 所有包都会更新。 一切似乎都很好,但一旦我尝试绘制拟合数据,我收到相同的错误。 这里是代码

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

2 个答案:

答案 0 :(得分:0)

使用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 :(得分:0)

您不必使用fitted()来提取拟合值。您应该可以使用$fitted直接访问它们,例如fit4$fitted