Upload
vanquynh
View
213
Download
1
Embed Size (px)
Citation preview
Clemens Holzkorn 1
Empirisches Projekt: FOREX-Daten mit ARIMA-Modell UK 040121 Angewandte Ökonometrie
05.05.2016
Clemens Holzkorn
Clemens Holzkorn 2
Inhalt
Vorwort ...................................................................................................................................... 3
Zeitreiheneigenschaften und Stationarität (FRED-Daten) ......................................................... 3
Zeitreiheneigenschaften (Moodle-Daten) ................................................................................. 6
Modellwahl und Prognosevalidierung ....................................................................................... 7
Modellselektion für eine Teilstichprobe .................................................................................. 10
Out-of-Sample-Prognose .......................................................................................................... 14
Mehr-Schritt-Prognose ............................................................................................................. 16
Schlussfolgerungen .................................................................................................................. 17
Appendix: STATA Code ............................................................................................................. 19
Clemens Holzkorn 3
Vorwort Die im folgenden verwendeten Daten stammen aus der Economic Research Datenbank der
Feder Reserve Bank von St. Louis.
Eine komplette Auflistung der verwendeten STATA-Befehle befindet sich im Appendix.
Zeitreiheneigenschaften und Stationarität (FRED-Daten)
Das Ziel unserer Analyse ist die Prognose des heutigen Wechselkurses aufgrund von
vergangenen Wechselkursen (Lags) durch ein passendes Zeitreihenmodell. Der Wechselkurs
im Zeitverlauf ist in den Abbildungen 1 (links) und 2 (logarithmiert, rechts) dargestellt.
Die ersten Differenzen lassen durch ihre horizontale Trendlinie Stationarität vermuten:
.81
1.2
1.4
1.6
Wechse
lkurs
EU
R/U
SD
2000m1 2005m1 2010m1 2015m1Monate
-.2
0.2
.4.6
Lo
gari
thm
iert
er
Wech
se
lkurs
2000m1 2005m1 2010m1 2015m1Monate
-.1
-.05
0
.05
.1
2000m1 2005m1 2010m1 2015m1Monate
Erste Differenz Wechselkurs Fitted values
Abb. 1 Abb. 2
Abb. 3
Clemens Holzkorn 4
Die Autokorrelationsfunktion (ACF) kann uns ebenfalls Hinweise auf die Stationarität geben:
Bei einer stationären Zeitreihe fällt die ACF schnell auf null, bei nicht-stationären Daten
nimmt sie langsamer ab. Abb. 4 bildet die ACF des Wechselkurses ab, Abb. 5 die ACF des
logarithmierten Wechselkurses und Abb. 6 jene der Differenzen der Lags.
Wie erwartet sollten die Differenzen der Lags stationär sein. Um auf Stationarität zu testen
können wir den Augmented Dickey-Fuller-Test (ADF) verwenden. Der ADF-Test prüft die
𝐻0: 𝑧 = 1 gegen die 𝐻1: 𝑧 ≠ 1, wobei z die „unit roots“ der charakteristischen Gleichung
sind.
-1.0
0-0
.50
0.0
00.5
01.0
0
Au
toco
rrela
tions o
f exue
0 10 20 30 40Lag
Bartlett's formula for MA(q) 95% confidence bands
-1.0
0-0
.50
0.0
00.5
01.0
0
Au
toco
rrela
tions o
f le
xue
0 10 20 30 40Lag
Bartlett's formula for MA(q) 95% confidence bands
-0.2
0-0
.10
0.0
00.1
00.2
00.3
0
Au
toco
rrela
tions o
f dex
0 10 20 30 40Lag
Bartlett's formula for MA(q) 95% confidence bands
Abb. 4 Abb. 5
Abb. 6
Clemens Holzkorn 5
Mit unserer Test-Statistik |T| ≥ |c|, können wir die 𝐻0: 𝑧 = 1 für die Zeitreihe der Ersten
Differenz verwerfen und annehmen, dass Stationarität vorliegt.
Für die Zeitreihen der Beobachtungen der Variablen 𝑒𝑥𝑢𝑠𝑒𝑢 und 𝑙𝑜𝑔𝑒𝑥𝑢𝑠𝑒𝑢 berichtet uns
der Dickey-Fuller-Test die p-Werte 0.4527 (𝑊𝑒𝑐ℎ𝑠𝑒𝑙𝑘𝑢𝑟𝑠) und 0.5015
(𝑙𝑜𝑔𝑎𝑟𝑖𝑡ℎ𝑚𝑖𝑒𝑟𝑡𝑒𝑟 𝑊𝑒𝑐ℎ𝑠𝑒𝑙𝑘𝑢𝑟𝑠), was auf nicht-Stationarität schließen lässt.
Außerdem erhalten wir mit dem Befehl sum die deskriptiven Eigenschaften unserer
Variablen:
Clemens Holzkorn 6
Zeitreiheneigenschaften (Moodle-Daten)
Für die nächste Analyse laden wir die Daten zum Wechselkurs zwischen EUR und USD von
moodle. Zunächst visualisieren wir die Zeitreihe:
Weiters betrachten wir die Autokorrelationsfunktion (ACF) und die partielle
Autokorrelationsfunktion (PACF) in einem übersichtlichen Korrelogramm:
Da die ACF nur sehr langsam abfällt, haben wir Grund zu vermuten, dass die Zeitreihe nicht
stationär ist. Ein Dickey-Fuller test liefert uns einen p-Wert von 0.5996, weshalb wir
eigentlich annehmen sollten, dass Stationarität vorliegt. Wir könnten die Erste Differenz des
Wechselkurses bilden um einen stationären Prozess zu erzeugen.
Trotzdem werden wir in den nächsten Schritten annehmen, dass keine Stationarität vorliegt,
da die Aufgabenstellung es so verlangt.
-.2
0.2
.4.6
Wechse
lkurs
EU
R/U
SD
2000m1 2005m1 2010m1 2015m1Monate
Abb. 7
Clemens Holzkorn 7
Modellwahl und Prognosevalidierung
Für diesen Abschnitt verwenden wir einen gesplitteten Datensatz, bestehend aus einer
Evaluierungsperiode (Januar 1999 – Februar 2014, Monate 1 – 182) und Schätzperiode (März
2014 – März 2016, Monate 183 – 207).
Da wir in unserer Zeitreihe von Stationarität ausgehen ist keine weitere Differenzierung
notwendig und wir können das Testen verschiederner ARIMA(p,d,q)-Modelle überspringen1.
Wir gehen gleich dazu über die Informationskriterien verschiedener ARMA(p,q)-Modelle zu
vergleichen.
Modell AIC BIC
𝐴𝑅𝑀𝐴(1,0) -752.6999 -743.0879
𝐴𝑅𝑀𝐴(2,0) -750.9107 -738.0947
𝐴𝑅𝑀𝐴(2,1) -749.8521 -733.8321
𝐴𝑅𝑀𝐴(2,2) -748.3962 -729.1722
𝐴𝑅𝑀𝐴(0,1) -349.2816 -339.6696
𝐴𝑅𝑀𝐴(0,2) -476.6309 -463.8149
𝐴𝑅𝑀𝐴(1,2) -749.1403 -733.1203
Da wir sowohl für das AIC als auch für das BIC mit dem 𝐴𝑅𝑀𝐴(1,1)-Modell die niedrigsten
Werte erhalten (wobei AIC Modelle mit mehr Parametern präferiert), sollten wir es für
unsere Prognose wählen:
𝑒𝑥𝑡 = ∅1𝑒𝑥𝑡−1 + 𝜀𝑡
Nachdem wir ein Modell aufgrund seiner Informationskriterien gewählt haben führen wir
eine Residuenanalyse durch.
1 Der KPSS-Test verwirft ab einem Lag die 𝐻0 der Stationarität nicht mehr, was bedeutet, dass wir eigentlich einen ARMA(p,d,q)-Prozess mit d=1 wählen sollten. Der Code zum Test im Appendix.
Clemens Holzkorn 8
Bei einem Blick auf die AC und PAC der Residuen fallen uns keine verborgenen Strukturen
auf, die weitere Investigation benötigen würden. Somit wurde die Lag-Ordnung richtig
gewählt.
Als nächstes betrachten wir einen Breusch-Godfrey-Test, der die Autokorrelation der
Residuen nicht verwerfen kann:
Zuletzt betrachten wir noch die Verteilung unserer Fehlerterme. Mit freiem Auge scheint
eine Normalverteilung recht plausibel zu sein.
010
20
30
Den
sity
-.1 -.05 0 .05 .1Residuals
Abb. 8
Clemens Holzkorn 9
Um sicher zu gehen, dass die Fehlerterme normalverteilt sind, führen wir noch einen Jarque-
Bera Test durch, der anhand der Schiefe und Kurtosis der Daten prüft, ob diese
normalverteilt sind.
Der p-Wert von 0.0745 bedeutet, dass wir die Nullhypothese, dass die Fehler normalverteilt
sind, auf dem 10%-Niveau verwerfen müssen.
Nun können wir unsere Prognose ansehen und uns fällt auf, dass der Verlauf der
Prognosekurve jenem der Datenkurve sehr ähnlich ist:
-.2
0.2
.4.6
2000m1 2005m1 2010m1 2015m1Monate
Wechselkurs EUR/USD Prognose, Schätzperiode
Abb. 9
Clemens Holzkorn 10
Modellselektion für eine Teilstichprobe
Wir wählen aufgrund des Verlaufes der Zeitreihe die Periode Juni 2001 – Mai 2009 (Monate
30-125), da hier der größte Anstieg des Wechselkurses stattfand.
Zunächst versuchen wählen wir einen AR(1)-Prozess. Die Regression produziert jedoch einen
sehr hohen Koeffizienten (nahe 1), der uns vermuten lässt, dass der Prozess nicht stationär
ist.
Daraufhin führen wir einen KPSS-Test, dass die Zeitreihe um einen deterministischen Trend
herum stationär ist, durch. Dieser liefert folgende Ergebnisse:
-.2
0.2
.4.6
Wechse
lkurs
EU
R/U
SD
2001m1 2003m1 2005m1 2007m1 2009m1Monate
Abb. 10
Clemens Holzkorn 11
Kritische Werte für 𝐻0: 𝑑𝑖𝑓 𝑖𝑠 𝑡𝑟𝑒𝑛𝑑 𝑠𝑡𝑎𝑡𝑖𝑜𝑛𝑎𝑟𝑦
10%: 0.119; 5% : 0.146; 2.5%: 0.176; 1% : 0.216
Wechselkurs Erste Differenz des Wechselkurses
Anzahl Lags Teststatistik Anzahl Lags Teststatistik
0 1.05 0 0.0423
1 0.55 1 0.0394
2 0.383 2 0.0405
3 0.299 3 0.0393
4 0.25 4 0.0401
Der Wert der Teststatistik des Wechselkurses verwirft die 𝐻0 des KPSS-Tests für jede
sinnvolle Anzahl an Lags. Die erste Differenz des Wechselkurses hingegen ist für jede Lag-
Anzahl stationär. Somit wählen wir in jedem Fall ein 𝐴𝑅𝐼𝑀𝐴(𝑝, 𝑑, 𝑞)-Modell mit 𝑑 = 1.
Als nächstes betrachten wir die ACF (Abb. 11) und PACF (Abb. 12) unserer Teilstichprobe:
Bei einem 𝐴𝑅𝐼𝑀𝐴(𝑝, 𝑑, 0)-Prozess ist die ACF entweder exponential abnehmend oder
sinusoid und hat eine Spitze bei p (aber keine davor). Ein 𝐴𝑅𝐼𝑀𝐴(0, 𝑑, 𝑞)-Prozess hat eine
PACF, die entweder exponential abnehmend oder sinusoid ist und eine Spitze bei q (aber
keine davor) hat. Auf den ersten Blick ist nicht klar, welchem Prozess unsere Zeitreihe folgt.
Nun testen wir verschiedene 𝐴𝑅𝐼𝑀𝐴(𝑝, 1, 𝑞)-Modelle um unter ihnen jenes zu finden,
welches unsere Zeitreihe am besten beschreibt:
-0.2
0-0
.10
0.0
00.1
00.2
0
Au
toco
rrela
tions o
f dif
0 10 20 30 40Lag
Bartlett's formula for MA(q) 95% confidence bands
-0.4
0-0
.20
0.0
00.2
00.4
0
Pa
rtia
l auto
co
rrela
tions o
f d
if
0 10 20 30 40Lag
95% Confidence bands [se = 1/sqrt(n)]
Abb. 11 Abb. 12
Clemens Holzkorn 12
Modell AIC BIC
𝐴𝑅𝐼𝑀𝐴(0,1,0) -752.6999 -743.0879
𝐴𝑅𝐼𝑀𝐴(0,1,1) -400.5469 -392.8539
𝐴𝑅𝐼𝑀𝐴(1,1,0) -400.3754 -392.6824
𝐴𝑅𝐼𝑀𝐴(2,1,0) -398.8943 -388.6369
𝐴𝑅𝐼𝑀𝐴(2,1,1) -398.8929 -386.0711
𝐴𝑅𝐼𝑀𝐴(1,1,1) -402.0992 -391.8418
𝐴𝑅𝐼𝑀𝐴(1,1,2) -398.8385 -386.0168
𝐴𝑅𝐼𝑀𝐴(2,1,2) -398.1858 -382.7998
𝐴𝑅𝐼𝑀𝐴(0,1,2) -399.6988 -389.4414
Nachdem uns das 𝐴𝑅𝐼𝑀𝐴(0,1,0)-Modell bei weitem die niedrigsten Werte für AIC und BIC
liefert, nehmen wir für unsere Zeitreihe einen Random Walk mit Drift an.
Dennoch berechnen wir aufgrund der Datenstruktur das beste undifferenzierte Modell:
Modell AIC BIC
𝐴𝑅𝑀𝐴(1,0) -391.6564 -383.9634
𝐴𝑅𝑀𝐴(2,0) -391.1196 -380.8622
𝐴𝑅𝑀𝐴(2,1) -391.2174 -378.3957
𝐴𝑅𝑀𝐴(2,2) -392.7214 -379.8996
𝐴𝑅𝑀𝐴(0,1) -193.0995 -185.4064
𝐴𝑅𝑀𝐴(0,2) -256.4906 -246.2332
𝐴𝑅𝑀𝐴(1,2) -390.0166 -377.1949
𝐴𝑅𝑀𝐴(1,1) -391.328 -381.0706
Laut der Box-Jenkins-Methode sollten wir den aufgrund des BIC-Wertes entscheiden, da
dieser weniger Parameter präferiert (also „sparsamer“ ist). Das beste undifferenzierte
Modell, welche unsere Zeitreihe beschreibt, ist somit ein 𝐴𝑅(1)-Modell.
Clemens Holzkorn 13
Ein einfacher Blick auf die Prognosen genügt, um zu sehen, dass das 𝐴𝑅(1)-Modell den
Random Walk schlägt:
Somit wählen wir das 𝐴𝑅(1)-Modell und führen erneut eine Residuenanalyse durch. In der
ACF und PACF sind kleine Unregelmäßigkeiten zu sehen, die aber keine großen Probleme
darstellen sollten, da die PACF an der Stelle 𝑝 + 1 gleich Null ist.
Der Breusch-Godfrey-Test auf nicht-Autokorrelation kann mit einem p-Wert von 0.4092
nicht verworfen werden. Der Jarque-Bera-Test verwirft auf dem 5%- und 10%-Niveau die
Nullhypothese der Normalverteilung der Fehler (p-Wert: 0.0480).
-.2
0.2
.4.6
2001m1 2003m1 2005m1 2007m1 2009m1Monate
Wechselkurs EUR/USD AR(1)
Random Walk
Abb. 13
Clemens Holzkorn 14
Out-of-Sample-Prognose
Wir arbeiten mit dem 𝐴𝑅𝐼𝑀𝐴(0,1,0)-Modell weiter, das wir für unsere Teilstichprobe
gewählt haben. Wir führen unsere Regression durch...
...und erhalten mit dem STATA-Befehl predict unsere „one-step prediction“ die Konstante
0.00534645. Um die Prognosekraft unseres Random-Walks zu testen, stellen wir es einem
undifferenzierten 𝐴𝑅(1)-Modell gegenüber, welches den Prozess für 𝑑 = 0 am besten
beschreibt:
Wir sehen, dass der Random Walk für 1-Monats-Prognosen wesentlich schlechter
abschneidet als der nicht-differenzierte 𝐴𝑅(1), der eigentlich zuvor durch das KPSS-
01
23
2009m1 2010m1 2011m1 2012m1 2013m1 2014m1 2015m1 2016m1Monate
Kumulierte Fehler AR(1) Kumulierte Fehler Random Walk
Abb. 14
Clemens Holzkorn 15
Kriterium ausgeschieden wurde. Unter der Annahme, dass dieser 𝐴𝑅(1)-Prozess doch
stationär sei sollten wir ihn für die 1-Schritt-Prognose unserer Teilstichprobe verwenden.
Anschließend können wir den RMSE (Root Mean Squared Error), sowie den MAPE (Mean
absolute percentage error) berechnen.
RMSE MAPE
Random Walk 0.04369931 0.03456352
𝐴𝑅(1) 0.02908432 0.0227306
Der RMSE kann als Standardabweichung der nicht-erklärten Varianz interpretiert werden
und ist ein absolutes Measure-of-Fit. Er ist das wichtigste Kriterium für den Goodness-of-Fit
bei Prognosemodellen. Desto niedriger sein Wert, desto besser der Fit. Der MAPE stellt den
Fit als Prozentsatz dar und ist ebenfalls relativ besser, falls er einen niedrigeren Wert besitzt.
Somit hat aufgrund des RMSE und des MAPE das 𝐴𝑅(1)-Modell den besseren Fit.
Clemens Holzkorn 16
Mehr-Schritt-Prognose
In der Mehr-Schritt-Prognose berechnen wir ein Modell aus der Schätzperiode und führen
rekursive Prognosen für 𝑦𝑡+3 in der Evaluierungsperiode durch (Der Wert für 𝑦𝑡+3 errechnet
sich somit aus Werten von 𝑦𝑡). In diesem letzten Abschnitt stellen wir einen Vergleich
zwischen dem 𝐴𝑅𝐼𝑀𝐴(1,1,0) und einem Random-Walk-Modell dar.
Modell AIC BIC
𝐴𝑅𝐼𝑀𝐴(1,1,0) -748.2105 -741.8246
𝑅𝑎𝑛𝑑𝑜𝑚 𝑊𝑎𝑙𝑘 -751.9333 -745.5363
Bei der differenzierten Zeitreihe fällt uns auf, dass die Prognosegenauigkeit des 𝐴𝑅(1)-
Modells im Gegensatz zu einstufigen Prozessen stark sinkt. Der Random Walk schneidet hier
wesentlich besser ab und produziert abschnittsweise sogar geringere Prognosefehler
(kumuliert), wie Abbildung 15 veranschaulicht:
0.2
.4.6
.8
2014m7 2015m1 2015m7 2016m1Monate
Fehler ARIMA(1,1,0) Fehler Random Walk
Abb. 15
Clemens Holzkorn 17
Demnach sollten wir uns die Mehr-Schritt-Prognose sowohl für den 𝐴𝑅𝐼𝑀𝐴(1,1,0)-Prozess,
als auch für den Random Walk ansehen:
Wir können beobachten, dass sowohl das 𝐴𝑅𝐼𝑀𝐴(1,1,0)-Modell, als auch der Random Walk
für eine Mehr-Schritt-Prognose keine besonders gute Vorhersage der Daten liefert.
Schlussfolgerungen
Wir sollten anmerken, dass 𝐴𝑅𝐼𝑀𝐴-Modelle basierend auf den vergagenen Wechselkursen
eventuell nicht die besten Prognosen für FOREX-Daten liefern. Investopedia nennt 3 weitere
Möglichkeiten Wechselkursveränderungen vorherzusagen2:
1. Purchasing Power Parity (PPP): Der Kaufkraft-Approach ist basiert auf der Theorie
eines Weltpreises für ein bestimmtes Gut. Wenn ein Gut in allen Währungen gleich
viel kostet, so bestimmt sich der Wechselkurs lediglich aus den unterschiedlichen
Inflationen der Währungen.
2. Relative Economic Strength Approach: Diese Vorgehensweise betrachtet das
Ausmaß des Wirtschaftswachstums in den verschiedenen Volkswirtschaften bzw.
Währungsunionen um die Entwicklung des Währungskurses vorherzusagen.
2 http://www.investopedia.com/articles/forex/11/4-ways-to-forecast-exchange-rates.asp
-.1
0.1
.2.3
2014m7 2015m1 2015m7 2016m1Monate
Wechselkurs EUR/USD Prognose ARIMA(1,1,0)
Prognose RW
Abb. 16
Clemens Holzkorn 18
3. Andere Ökonometrische Modelle: Im Gegensatz zu 𝐴𝑅𝐼𝑀𝐴-Modellen, die ohne
ökonomische Theorie auskommen, gibt es eine vielzahl an ökonometrischen
Modellen, die auch andere Einflussfaktoren (als die Lags des Regressanden)
beinhalten können.
Wechselkurse zu berechnen ist kein leichtes Unterfangen, das noch schwieriger wird, desto
kürzer wir die Zeitperioden wählen. Programme wie MetaTrader erlauben die Verwendung
von adaptiven Modellen, die auf Machine-Learning-Algorithmen basieren und quasi „mit der
Zeitreihe lernen“. Es wäre spannend herauszufinden wie sich FOREX-Märkte verhalten
würden, wenn jegliche Entscheidungen von Trading Bots getroffen werden und die Märkte
so statt einer (zumindest noch zum Teil) Ökonomisch-Theoretischen Verhaltensweise eine
rein Statistisch-Spieltheoretische Verhaltensweise annehmen würden, die nicht mehr auf
realwirtschaftlichen Indikatoren basiert. Vielleicht würden unsere 𝐴𝑅𝐼𝑀𝐴-Modelle dann an
Aussagekraft gewinnen.
Clemens Holzkorn 19
Appendix: STATA Code
/*Teil 1*/ cd "D:\Empirisches Projekt" import excel "D:\Empirisches Projekt\EXUSEU.xls", sheet("EXUSEU") firstrow clear drop DATE rename VALUE exue gen lexue = ln(exue) /*Teil 2*/ gen t = tm(1999m1) + _n - 1 format t %tm tsset t list t exue twoway line exue t twoway line lexue t gen lagex = exue[_n-1] gen dex = exue-lagex twoway line dex t gen llagex = lexue[_n-1] gen ldex = lexue-llagex /*Grafiken*/ twoway (line exue t) twoway (line ldex t) twoway (line dex t)(lfit dex t) ac exue ac lexue ac dex pac exue pac lexue pac dex /*Dickey-Fuller-Test*/ dfuller dex dfuller exue dfuller lexue /*Teil 3*/ capture log close cd "D:\Empirisches Projekt" log using XrateUSEUR, replace use XrateUSEUR, clear
Clemens Holzkorn 20
drop DATE rename VALUE xrate drop if xrate >=. gen t = tm(1999m1) + _n - 1 format t %tm tsset t list t xrate twoway line xrate t /*zeitreihe schaut nicht stationär aus deswegen differenzieren*/ /*lt. Angabe: schwache Stationarität.*/ gen x2 = xrate[_n-1] gen dif = xrate - x2 twoway line dif t corrgram xrate dfuller xrate, lags(2) ac dif dfuller dif, lags(2) /*Teil 4*/ /*KPSS test*/ kpss xrate in 1/182 kpss dif in 2/182 arima xrate in 1/182, arima(1,1,0) estat ic /*-750.0396 -740.4441*/ arima xrate in 1/182, arima(2,1,0) estat ic /*-748.2533 -735.4593*/ arima xrate in 1/182, arima(1,1,1) /*-748.9649 -736.1709*/ estat ic arima xrate in 1/182, arima(0,1,1) estat ic /*-750.0481 -740.4526*/ arima xrate in 1/182, arima(0,1,2) estat ic /*-748.4023 -735.6083*/ arima xrate in 1/182, arima(0,1,0)
Clemens Holzkorn 21
estat ic /*-751.9333 -745.5363*/ arima xrate in 1/182, arima(2,1,2) estat ic /*-746.8181 -727.6271*/ arima xrate in 1/182, arima(1,1,2) estat ic /*-747.3797 -731.3872*/ arima xrate in 1/182, arima(2,1,1) estat ic /*-747.5056 -731.5131*/ /*Anmerken. Wir arbeiten mit dem AR(1)-Modell weiter*/ /*Alle ARMA(0-2,0-2)-Modelle durchtesten*/ arima xrate in 1/182, arima(1,0,0) estat ic /*-752.6999 -743.0879*/ arima xrate in 1/182, arima(2,0,0) estat ic /*-750.9107 -738.0947*/ arima xrate in 1/182, arima(2,0,1) estat ic /*-749.8521 -733.8321*/ arima xrate in 1/182, arima(2,0,2) estat ic /*-748.3962 -729.1722*/ arima xrate in 1/182, arima(0,0,1) estat ic /*-349.2816 -339.6696*/ arima xrate in 1/182, arima(0,0,2) estat ic /*-476.6309 -463.8149*/ arima xrate in 1/182, arima(1,0,2) estat ic /*-749.1403 -733.1203*/ /*AR(1)-Modell ist das beste!*/ /*AR(1)-Modell ausführen*/ reg xrate x2 in 1/182 /*-753.2121 -746.8151*/ /*Residuenanalyse*/ /*Zunächst die Residuen berechnen*/ predict res4, residuals /*Korrelogramm ansehen*/ corrgram res4, lags(15)
Clemens Holzkorn 22
/*Breusch-Godfrey-Test auf Autokorrelation*/ bgodfrey, lags(1) /*Normalität überprüfen*/ ** Jarque Bera Test auf Normalität sktest res4 **Histogramm um Form der Residuen zu checken hist res4, bin(100) kdensity normal /*Prognose durchführen*/ predict fc4 in 183/207 tsline xrate fc4 /*Teil 5*/ arima xrate in 30/125, arima(1,0,0) /*hoher Koeffizient bei AR(1) => Random Walk?*/ kpss xrate in 30/125 kpss dif in 30/125 ac dif in 30/125 pac dif in 30/125 /* AR(1) Koeffizient ist gleich dem Autokorrelationskoeffizienten*/ arima xrate in 30/125, arima(0,1,0) estat ic /* -401.5456 -396.4169*/ arima xrate in 30/125, arima(0,1,1) estat ic /* -400.5469 -392.8539*/ arima xrate in 30/125, arima(1,1,0) estat ic /*-400.3754 -392.6824*/ arima xrate in 30/125, arima(2,1,0) estat ic /*-398.8943 -388.6369*/ arima xrate in 30/125, arima(2,1,1) estat ic /*-398.8929 -386.0711*/ arima xrate in 30/125, arima(1,1,1) estat ic /*-402.0992 -391.8418*/ arima xrate in 30/125, arima(1,1,2) estat ic /*-398.8385 -386.0168*/ arima xrate in 30/125, arima(2,1,2) estat ic /*-398.1858 -382.7998*/
Clemens Holzkorn 23
arima xrate in 30/125, arima(0,1,2) estat ic /*-399.6988 -389.4414*/ /*Prognose*/ reg xrate x2 in 30/125 predict res51 in 30/125 reg xrate dif in 30/125 predict res52 in 30/125 tsline xrate res51 res52 in 30/125 /*Residuenanalyse*/ reg xrate x2 in 30/125 /*Korrelogramm ansehen*/ corrgram res51, lags(15) /*Breusch-Godfrey-Test auf Autokorrelation*/ bgodfrey, lags(1) /*Normalität überprüfen*/ ** Jarque Bera Test auf Normalität sktest res51 **Histogramm um Form der Residuen zu checken hist res51, bin(100) kdensity normal /*RW bestes differenziertes Modell!*/ arima xrate in 30/125, arima(1,0,0) estat ic /*-391.6564 -383.9634*/ arima xrate in 30/125, arima(2,0,0) estat ic /*-391.1196 -380.8622*/ arima xrate in 30/125, arima(2,0,1) estat ic /*-391.2174 -378.3957*/ arima xrate in 30/125, arima(2,0,2) estat ic /*-392.7214 -379.8996*/ arima xrate in 30/125, arima(0,0,1) estat ic /*-193.0995 -185.4064*/ arima xrate in 30/125, arima(0,0,2) estat ic /*-256.4906 -246.2332*/ arima xrate in 30/125, arima(1,0,2) estat ic /*-390.0166 -377.1949*/ arima xrate in 30/125, arima(1,0,1)
Clemens Holzkorn 24
estat ic /*-391.328 -381.0706*/ /*Teil 6*/ arima xrate in 30/125, arima(0,1,0) predict f1 /*liefert mir Spalte voll mit der errechneten Konstanten. Also Modell ist Random walk mit drift*/ /*Berechne Prognosefehler */ gen d1 = 1 in 126/207 gen dif2 = dif[_n-1] gen er_rw = dif - (dif2 + f1) if d1==1 /*cumsum*/ gen cerrw = sum(abs(er_rw)) /*arima(1,1,0)*/ regress dif dif2 in 30/125 predict f2 gen er2 = dif - f2 if d1==1 gen cer2 = sum(abs(er2)) twoway (line cerrw t in 126/207)(line cer2 t in 126/207) /*für nicht-differenzierte*/ reg xrate x2 in 30/125 predict xrate1 gen d = 1 in 126/207 gen er_ar1 = xrate - xrate1 if d == 1 gen sumer_ar1 = sum(abs(er_ar1)) arima xrate in 30/125, arima(0,0,0) predict xrate2 gen er_rw = xrate - (x2+xrate2) if d == 1 gen sumer_rw = sum(abs(er_rw)) twoway (line sumer_ar1 t in 126/207) (line sumer_rw t in 126/207) /*Quadrierte Prognosefehler erstellen*/
Clemens Holzkorn 25
gen sq_errw = er_rw^2 gen sq_erar = er_ar1^2 /*Absolute Prognosefehler erstellen*/ gen ab_errw = abs(er_rw) gen ab_erar = abs(er_ar1) /* MAPE erstellen über abgespeicherte Werte des Befehls summarize. Das Voranstellen von quietly verhindert, dass die deskriptiven Statistiken aus- gegeben werden. */ quietly sum ab_errw scalar mape_errw = r(mean) quietly sum ab_erar scalar mape_erar = r(mean) ** RMSE erstellen über abgespeicherte Werte des Befehls summarize. quietly sum sq_errw scalar rmse_errw = sqrt(r(mean)) quietly sum sq_erar scalar rmse_erar = sqrt(r(mean)) ** Evalution der Ein-Schrittprognosen scalar list mape_errw mape_erar rmse_errw rmse_erar /*Teil 7*/ /* AR(1) und RW zum vorcasten, f1+dif und f2*/ /*Einmal für 3 Monate und einmal für 6 Monate.*/ /*AR(1),3*/ regress dif dif2 in 1/182 estat ic /*-748.2105 -741.8246*/ predict f2_1 gen f2_3 = f2_1[_n-2] gen d2 = 1 in 185/207 gen er_3 = dif - f2_3 if d2==1 gen cer3 = sum(abs(er_3)) /*RW, 3*/ arima xrate in 1/182, arima(0,1,0) estat ic /*-751.9333 -745.5363*/ predict f3 gen dif_3 = dif[_n-3] gen er_4 = dif - (dif_3+f3) if d2==1
Clemens Holzkorn 26
gen cer4 = sum(abs(er_4)) twoway (line cer3 t in 185/207)(line cer4 t in 185/207) /*Grafiken*/ gen pred_ar_m = f2_3*100 gen pred_rw_m = f3*100 tsline xrate l2_100 l3_100 in 185/207