Pseudo out-of-sample ARIMA Modell

Methoden der Zeitreihenanalyse
Antworten
Oxymoron
Beiträge: 2
Registriert: Mo Jun 19, 2017 1:47 pm

Pseudo out-of-sample ARIMA Modell

Beitrag von Oxymoron » Mo Jun 19, 2017 3:20 pm

Hallo,
ich lerne R gerade erst kennen und schaffe es wahrscheinlich mangels Grundkenntnissen nicht, mir die passende Lösung für mein Problem zusammenzugooglen. Deshalb suche ich hier nach Hilfe.
Ich versuche eine Pseudo out-of-sample Methode für ein ARIMA-Modell, das BIP-Wachstumsprognosen machen soll, zu entwickeln. Konkret habe ich eine Zeitreihe mit vierteljährlichen BIP-Wachstumsraten von 1996Q1 bis 2016Q4 und ich möchte für die Zeitpunkte 2000Q1 bis 2016Q4 Ein-Jahr-voraus-Forecasts auf Basis der vorangegangenen Daten machen. Dabei soll die Menge der benutzten Datenpunkte pro Modell aber gleich bleiben. Das heißt, ich möchte zunächst auf Basis der Daten von 1996Q1-1999Q1 ein ARIMA-Modell spezifizieren und dann damit einen Forecast für die nächsten vier Quartale erstellen, um einen Wert für 2000Q1 zu erhalten. Daraufhin möchte ich ein ARIMA-Modell auf Basis von 1996Q2-1999Q2 spezifizieren und einen Forecast für 2000Q2 machen usw., bis ich für 2016Q4 einen Forecast eines Modells auf Basis von 2011Q4-2015Q4 habe.

Ich habe mir das Forecast-Package installiert und mithilfe einiger Tutorials rausgefunden, wie ich mit auto.arima() einen ersten Forecast für 2000Q1 bekomme:

Code: Alles auswählen

data = read.csv2(choose.files()) #loading file
data$Euroraum <- ts(data$Euroraum, start=c(1996, 1), end=c(2016, 4), frequency=4) #make it a time series
GDP_1999Q1 <- window(data$Euroraum, start=c(1996, 1), end=c(1999, 1)) #generate first subset for producing first forecast
fit_GDP2000Q1 = auto.arima(GDP_1999Q1, ic=c("aic")) 
Forecast_GDP2000Q1 = forecast(fit_GDP2000Q1,h=4)
Aber ich würde das natürlich gerne für alle Forecasts automatisieren und die Ergebnisse (für das jeweils zuletzt geschätzt Quartal, also den Ein-Jahr-voraus-Forecast) als neue Zeitreihe zusammenfassen. Meine Versuche das mit einer for-Schleife zu tun sind bisher gnadenlos gescheitert, deswegen wäre ich für Hilfe jedweder Art sehr dankbar. Gibt es zB eine Funktion, die mir die benötigten Subsets der Zeitreihe auf einmal erstellen kann? Dann würde ich es vermutlich auch schaffen, mit einer for-Schleife die Forecasts dafür auf einmal zu erstellen.

Meine .csv, auf der der Code basiert, sieht so aus:

Code: Alles auswählen

GEOTIME Euroraum
1996Q1  1,1
1996Q2  1,4
1996Q3  2,1
1996Q4  1,7
1997Q1  1
1997Q2  3,1
1997Q3  2,6
1997Q4  3,5
1998Q1  4,2
1998Q2  2,4
1998Q3  2,8
1998Q4  2,1
1999Q1  2,2
1999Q2  2,6
1999Q3  2,9
1999Q4  4,1
2000Q1  4,9
2000Q2  4,3
2000Q3  3,4
2000Q4  2,7
2001Q1  3
2001Q2  2,3
2001Q3  1,8
2001Q4  1,4
2002Q1  0,1
2002Q2  1,1
2002Q3  1,5
2002Q4  0,9
2003Q1  0,9
2003Q2  0
2003Q3  0,4
2003Q4  1,1
2004Q1  2,2
2004Q2  2,7
2004Q3  2,2
2004Q4  2
2005Q1  0,9
2005Q2  2
2005Q3  1,8
2005Q4  1,7
2006Q1  3,6
2006Q2  2,6
2006Q3  3
2006Q4  3,5
2007Q1  3,4
2007Q2  3,1
2007Q3  3
2007Q4  2,3
2008Q1  1,7
2008Q2  1,6
2008Q3  0,6
2008Q4  -2,1
2009Q1  -5,5
2009Q2  -5,9
2009Q3  -4,3
2009Q4  -2
2010Q1  1,2
2010Q2  2,5
2010Q3  2,4
2010Q4  2,3
2011Q1  2,9
2011Q2  1,8
2011Q3  1,4
2011Q4  0
2012Q1  -0,2
2012Q2  -1,2
2012Q3  -1,2
2012Q4  -1,1
2013Q1  -1,8
2013Q2  -0,3
2013Q3  0,4
2013Q4  0,6
2014Q1  1,4
2014Q2  0,9
2014Q3  1,1
2014Q4  1,3
2015Q1  1,9
2015Q2  2,1
2015Q3  2
2015Q4  2,3
2016Q1  1,7
2016Q2  2,2
2016Q3  1,7
2016Q4  1,4
Vielen Dank im Voraus für Eure Hilfe!

Oxymoron
Beiträge: 2
Registriert: Mo Jun 19, 2017 1:47 pm

Re: Pseudo out-of-sample ARIMA Modell

Beitrag von Oxymoron » Di Jun 20, 2017 11:51 am

Ich habe jetzt einen Weg gefunden, mir meine gewünschten Ein-Jahr-voraus-Forecasts direkt auflisten zu lassen:

Code: Alles auswählen

forecasts = numeric(length = 68)

for (i in 1:68) {
    forecasts[i]<-forecast(auto.arima(ts(data$Euroraum[i:(12+i)], frequency = 4)), h=4)$mean[4]
  }
forecasts
Das löst mein Problem glaube ich erstmal im Wesentlichen.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast