Tenho dados de preços mensais para uma mercadoria de 2007 a 2017. Você pode encontrá-los no seguinte link:
https://drive.google.com/open?id=0BxRCOgKAL4itcUZlOExrUmVOanc
Preciso prever usando o modelo ARIMA sazonal no R para a próxima ano. Quando estou usando a auto.arima
função, ele me sugere o melhor modelo em ARIMA(0,1,1)
vez de ARIMA(p,d,q)(P,D,Q)12
. A parte sazonal do model(P,D,Q)
está faltando de alguma forma. Não sei por que isso está acontecendo. Meus dados não são sazonais ou há algo errado no meu código. Além disso, o valor previsto fornecido pelo modelo é constante para os próximos meses, o que é insignificante. Por favor ajude! Aqui está o código:
data <- read.delim("C:/Users/hp/Desktop/heckyl/forecasting model/Soybean_Prices.txt", header=F)
View(data)
summary(data)
summary(data)
ts.data = ts(data, frequency=12, start=c(2007,6))
ts.data
plot(ts.data)
dim(as.matrix(ts.data))
################################################################################
# Training and Testing Dataset
data.train = window(ts.data, start = c(2007,6), end = c(2013,12))
plot(data.train)
dim(as.matrix(data.train))
data.test = window(ts.data, start = c(2014,1))
plot(data.test)
dim(as.matrix(data.test))
################################################################################
# Developing an SARIMA model and Analysis of Model
library(forecast)
arima1 = auto.arima(data.train, trace=FALSE, test="kpss", ic="aic")
summary(arima1)
confint(arima1)
# Residual Diagonostics
plot.ts(arima1$residuals)
Box.test(arima1$residuals,lag=20, type="Ljung-Box")
acf(arima1$residuals, lag.max=24, main="ACF of the Model")
Box.test(arima1$residuals^2,lag=20, type="Ljung-Box")
library(tseries)
jarque.bera.test(arima1$residuals)
arima1.forecast= forecast.Arima(arima1, h=41)
arima1.forecast
plot(arima1.forecast, xlab="Years", ylab="Price for Soybean")
library(TSPred)
plotarimapred(data.test, arima1, xlim=c(2014, 2017), range.percent = 0.05)
accuracy(arima1.forecast, data.test)