Ich habe monatliche Preisdaten für eine Ware von 2007 bis 2017. Sie finden sie unter folgendem Link:
https://drive.google.com/open?id=0BxRCOgKAL4itcUZlOExrUmVOanc
Ich muss sie für das nächste mit dem saisonalen ARIMA-Modell in R prognostizieren Jahr. Wenn ich die auto.arima
Funktion verwende, wird mir das beste Modell ARIMA(0,1,1)
anstelle von vorgeschlagen ARIMA(p,d,q)(P,D,Q)12
. Der saisonale Teil des model(P,D,Q)
fehlt irgendwie. Ich weiß nicht, warum das passiert. Sind meine Daten nicht saisonabhängig oder stimmt etwas in meinem Code nicht? Auch der vom Modell angegebene Prognosewert ist für die nächsten Monate konstant, was unbedeutend ist. Bitte helfen Sie! Hier ist der Code:
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)