Aufgabe 47: Parameterschätzung und Modellwahl im ARMA-Modell (Software) Analysieren Sie die in der Datei aufgabe47.txt gegebene Zeitreihe (y t ), t = 1,..., 100. Nehmen Sie an, dass diese Realisation eines ARMA(p,q)-Prozesses ist. (a) Bestimmen Sie anhand der empirischen Autokorrelationsfunktion und partiellen Autokorrelationsfunktion die vermutliche Modellordnung p und q. y <- scan(file="http://www.statistik.tu-dortmund.de/~fried/zeitreihen/ Uebung/Daten/aufgabe47.txt") plot(y, type="o") y 8 10 14 0 20 40 60 80 100 Index acf(y) Series y ACF 0.2 0.2 0.6 1.0 0 5 10 15 20 Lag pacf(y) Series y Partial ACF 0.2 0.2 0.6 5 10 15 20 Lag 1
ACF fällt geometrisch ab, PACF hat zwei signifikante Lags. Das spricht für die Annahme eines AR(2)-Prozesses. (b) Passen Sie mit dem Yule-Walker-Schätzer jeweils ein AR(p)-Modell an für p = 1, 2, 3. Verwende Formel aus Gleichung (8.15) des Vorlesungsskripts: ar.yulewalker <- function(y, p=1){ acf_est <- acf(y, lag.max=p, plot=false)$acf[,1,1] gamma_est <- acf_est[-1] Gamma_est <- matrix(acf_est[abs(row(diag(p))-col(diag(p)))+1], nrow=p, ncol=p) phi_est <- as.vector(solve(gamma_est)%*%gamma_est) return(phi_est) } ar.yulewalker(y, p=1) [1] 0. 8277 ar.yulewalker(y, p=2) [1] 0. 6405 0. 2262 ar.yulewalker(y, p=3) [1] 0. 64338 0. 23449-0. 01292 Oder verwende alternativ eine in R verfügbare Funktion zur Anpassung von AR(p)-Modellen, beispielhaft hier für das AR(3)-Modell: ar(y, method="yule-walker", aic=false, order.max=3) ar(x = y, aic = FALSE, order. max = 3, method = "yule - walker ") 1 2 3 0. 643 0. 234-0.013 Order selected 3 sigma ^2 estimated as 1.1 Hier wird zusätzlich ein Mittelwert durch das arithmetische Mittel der Beobachtungen geschätzt (wenn auch nicht standardmäßig angezeigt). Das passt zum Yule-Walker-Schätter, da auch dieser ein Momentenschätzer ist. Außerdem wird die Varianz der Innovationen σ 2 geschätzt und auch ausgegeben. Wir haben in diesem Fall die Ordnung p des AR(p)-Modells mit der Argument order.max vorgegeben. Setzt man das Argument aic=true, würde automatisch die Modellordnung gewählt, die unter allen Modellen mit einer Modellordnung von bis zu order.max den kleinsten AIC-Wert hat. 2
(c) Passen Sie mit exakter ML-Schätzung jeweils ein AR(p)-Modell an für p = 1, 2, 3. ar(y, method="mle", aic=false, order.max=1)$ar ar1 0. 8276 ar(y, method="mle", aic=false, order.max=2)$ar Warning : possible convergence problem : optim gave code = 1 ar1 ar2 0. 6488 0. 2124 ar(y, method="mle", aic=false, order.max=3)$ar ar1 ar2 ar3 0. 65135 0. 22215-0. 01434 Oder alternativ mit einer R-Funktion zur Anpassungen von ARIMA-Modellen, welche natürlich auch den Spezialfall eines AR(p)-Modells anpassen kann: (ar1.exml <- arima(y, order=c(1,0,0), method="ml")) arima (x = y, order = c(1, 0, 0), method = "ML ") ar1 intercept 0. 828 10. 937 s.e. 0.054 0.579 sigma ^2 estimated as 1. 09: log likelihood = -146.7, aic = 299.4 (ar2.exml <- arima(y, order=c(2,0,0), method="ml")) arima (x = y, order = c(2, 0, 0), method = "ML ") ar1 ar2 intercept 0. 648 0. 213 10. 915 s.e. 0.099 0.099 0.684 sigma ^2 estimated as 1. 04: log likelihood = -144.4, aic = 296.9 (ar3.exml <- arima(y, order=c(3,0,0), method="ml")) arima (x = y, order = c(3, 0, 0), method = "ML ") 3
ar1 ar2 ar3 intercept 0. 651 0. 222-0.014 10. 916 s.e. 0.101 0.120 0.101 0.677 sigma ^2 estimated as 1. 04: log likelihood = -144.4, aic = 298.9 Hier wird ebenfalls ein Mittelwert ins Modell aufgenommen, allerdings nicht durch ein einfaches arithmetisches Mittel geschätzt. Unterschiede sind auf die unterschiedlichen Algorithmen zur numerischen Optimierung zurückzuführen. (d) Passen Sie mit bedingter ML-Schätzung jeweils ein AR(p)-Modell an für p = 1, 2, 3. Wie in der Vorlesung gesagt, ist der aus der bedingten Likelihood ermittelte Schätzer ein Kleinste-Quadrate-Schätzer. Nutze deshalb die entsprechenden Optionen. ar(y, method="ols", aic=false, order.max=1)$ar,, 1 [,1] [1,] 0.8319 ar(y, method="ols", aic=false, order.max=2)$ar,, 1 [,1] [1,] 0.6633 [2,] 0.2097 ar(y, method="ols", aic=false, order.max=3)$ar,, 1 [,1] [1,] 0.66614 [2,] 0.21963 [3,] -0.01467 Oder alternativ mit der R-Funktion arima, hier am Beispiel p = 2: arima(y, order=c(2,0,0), method="css") arima (x = y, order = c(2, 0, 0), method = " CSS ") ar1 ar2 intercept 0. 663 0. 210 10. 929 s.e. 0.097 0.097 0.801 sigma ^2 estimated as 1. 03: part log likelihood = -143.2 4
(e) Passen Sie mit exakter ML-Schätzung ein ARMA(1,1)-Modell an. (arma11.exml <- arima(y, order=c(1,0,1), method="css-ml")) arima (x = y, order = c(1, 0, 1), method = "CSS -ML ") ar1 ma1 intercept 0. 898-0.240 10. 908 s.e. 0.049 0.111 0.705 sigma ^2 estimated as 1. 04: log likelihood = -144.6, aic = 297.2 Übrigens: Mit dem Argument method= CSS-ML bestimmt die Funktion arima zunächst mit einem bedingten ML-Schätzer eine Startlösung, welche dann für die Optimierung der exakten Likelihood verwendet wird. Diese Methode ist auch die Voreinstellung und zu empfehlen, da sie etwas schneller ist als direkt die exakte Likelihood zu maximieren. (f) Vergleichen Sie die Anpassungen aus den vorherigen Aufgabenteilen. Berücksichtigen Sie dabei die Modellwahlkriterien aus Abschnitt 8.3 der Vorlesung. Für welches Modell würden Sie sich auf dieser Grundlage entscheiden? Begründen Sie Ihre Entscheidung ausführlich. Vorbemerkungen: Die verwendeten Modellwahlkriterien beruhen auf Maximum-Likelihood-Schätzungen, eignen sich also streng genommen nur für die Schätzer aus den Aufgabenteilen (c) und (e). Deshalb werden hier auch diese Anpassungen verglichen. Um einen fairen Vergleich zu ermöglichen, müssen alle Verfahren mit der gleichen Anzahl von Beobachtungen angepasst werden. Laut Bemerkung auf S. 136 des Vorlesungsskripts sind das für ein saisonales ARIMA-Modell n d l D. In unserem Fall werden also jeweils alle 100 Beobachtungen verwendet. Da jeweils noch ein Mittelwert ins Modell aufgenommen wird, haben wir insgesamt einen Parameter mehr. Die Anzahl der Parameter nennen wir wie in der Vorlesung k. #Funktion zur Berechnung verschiedener Modellwahlkriterien: modellwahlkriterien.ar <- function(sigma2_est, n, k){ ausgabe <- c( FPE=sigma2_est*(n+k)/(n-k), AIC=n*log(sigma2_est)+2*k, AICC=n*log(sigma2_est)+2*k*n/(n-k+1), BIC=n*log(sigma2_est)+k*log(n)) return(ausgabe) } modellwahlkriterien.ar(sigma2_est=ar1.exml$sigma2, n=length(y), k=1+1) FPE AIC AICC BIC 1. 133 12. 491 12. 531 17. 701 modellwahlkriterien.ar(sigma2_est=ar2.exml$sigma2, n=length(y), k=2+1) FPE AIC AICC BIC 1. 104 9. 891 10. 013 17. 706 modellwahlkriterien.ar(sigma2_est=ar3.exml$sigma2, n=length(y), k=3+1) 5
FPE AIC AICC BIC 1. 126 11. 868 12. 115 22. 289 modellwahlkriterien.ar(sigma2_est=arma11.exml$sigma2, n=length(y), k=2+1) FPE AIC AICC BIC 1. 107 10. 173 10. 296 17. 989 Je nach betrachtetem Kriterium sind unterschiedliche Modelle am besten geeignet. Das FPE-Kriterium liefert Modelle, die gut für eine Vorhersage auf neuen Daten geeignet sind. Das BIC liefert besonders sparsame Modelle, da es in besonderem Maße Modelle mit wenigen Parametern bevorzugt. Das ist auch hier der Fall: Laut BIC ist das sparsamste AR(1)-Modell (wenn auch knapp) das geeignetste. Alle übrigen Kriterien entscheiden sich hier für das (wahre) AR(2)-Modell. (g) Tatsächlich wurde die Zeitreihe aus dem Modell Y t = 10 + 0.6(Y t 1 10) + 0.3(Y t 2 10) + a t simuliert, wobei (a t ) standardnormalverteiltes weißes Rauschen ist. Wie beurteilen Sie die vorherigen Aufgabenteile mit diesem Wissen? Die Schätzungen der unterschiedlichen Schätzmethoden sind in diesem Beispiel alle sehr ähnlich. Im Vergleich zu den wahren Parameterwerten sind die des AR(2)-Modells schon halbwegs nahe an diesen. Für eine noch präzisere Schätzung müsste der Stichprobenumfang größer als n = 100 sein. 6