/ / Vorhersage des ARIMA-Modells mit zusätzlichen Regressoren - r, Zeitreihen, Vorhersage

Prognostizierendes ARIMA-Modell mit zusätzlichen Regressoren - r, Zeitreihen, Prognosen

Angenommen, ich habe einige Zeitreihen wie unten und ich möchte eine Vorhersage treffen c1 ein Schritt pro Kopf, das ist ziemlich einfach und einfach in R:

testurl = "https://docs.google.com/spreadsheets/d/1jtpQaSxNY1V3b-Xfa5OJKDCLE6pNlzTbwhSHByei4EA/pub?gid=0&single=true&output=csv"
test = getURL(testurl)
mydata = read.csv(textConnection(test), header = TRUE)
data <- ts(mydata["c1"])
fit <- auto.arima(data)
fcast <- forecast(fit)
fcast

Beachten Sie, dass es sich bei den Zahlen nur um Zufallszahlen handelt, und in auto.arima wird die Verwendung einer arima(0,1,0) und der prognostizierte Kopf pro Kopf ist 52.

aber was ist, wenn man verwenden will c2 und c3 die Out-of-Sample-Prognose (z. B. in Bezug auf AIC und BIC) zu verbessern? wie würde man dann eigentlich weiter machen?

c1   c2     c3
40   0,012  1
41   0,015  1
42   0,025  1
40  −0,015  1
44   0,000  0
50   0,015  0
52   0,015  1
51   0,020  1
50   0,025  1
52   0,030  0
53   0,045  1
52   0,030  1
52   0,025  0
52   0,000  0
51   0,010  0
50  −0,02   1
48  −0,025  1
49  −0,030  1
51  −0,040  1
52  −0,350  0

Antworten:

3 für die Antwort № 1

Wenn ich es richtig verstanden habe, versuchen Sie, ein dynamisches Regressionsmodell an Ihre Daten anzupassen xreg im auto.arima(). Sie können eine Modellanpassung automatisch anhand folgender Elemente ermitteln:

tsdata <- ts(mydata)
fit <- auto.arima(tsdata[,1], xreg = as.matrix(mydata[,2:3]))

Um Ihre 1-Schritt-Prognose zu erstellen, müssen Sie eine matrix von zukünftigen Werten von C2 und C3 zum xreg Argument in der Prognosefunktion. Eine Möglichkeit, dies zu tun, wäre so:

fc.c2 <- forecast(tsdata[,2], h = 1)
fc.c3 <- forecast(tsdata[,3], h = 1)


newxreg <- as.matrix(cbind(fc.c2$mean, fc.c3$mean))

fc.c1 <- forecast(fit, xreg = newxreg)