Ich denke, Sie haben es ziemlich richtig verstanden, aber beim Erstellen eines VAR-Modells stelle ich normalerweise sicher, dass ich die folgenden Schritte befolge:
1. Wählen Sie die Variablen aus
Dies ist der wichtigste Teil beim Erstellen Ihres Modells. Wenn Sie den Preis eines Vermögenswerts prognostizieren möchten, müssen Sie Variablen einbeziehen, die mit dem Mechanismus der Preisbildung zusammenhängen. Der beste Weg, dies zu tun, ist ein theoretisches Modell. Da Sie nicht erwähnt haben, was der Vermögenswert ist und welche anderen Variablen Sie in Ihr Modell aufgenommen haben, kann ich zu diesem Artikel nicht viel sagen. Eine Zusammenfassung der Vermögenswert-Preismodelle finden Sie hier .
2. Überprüfen Sie die Daten und nehmen Sie die richtigen Einstellungen vor
Nachdem Sie die Variablen ausgewählt haben, können Sie einige Anpassungen an den Daten vornehmen, um die Schätzung und Interpretation des Modells zu verbessern. Es ist nützlich, zusammenfassende Statistiken zu verwenden und einen Plot der Reihe anzuzeigen, um Ausreißer, fehlende Daten und andere seltsame Verhaltensweisen zu erkennen. Bei der Arbeit mit Preisdaten nehmen die Menschen normalerweise natürliche Protokolle, was eine varianzstabilisierende Transformation darstellt und auch eine gute Interpretation hat (Preisunterschiede in Protokollen werden kontinuierlich zu zusammengesetzten Renditen). Ich bin mir nicht sicher, ob Sie Protokolle erstellt haben, bevor Sie das Modell schätzen, aber es ist eine gute Idee, dies zu tun, wenn Sie mit Asset-Preisen arbeiten.
3. Überprüfen Sie, ob die Daten instationäre Komponenten enthalten
Jetzt können Sie mithilfe von Unit-Root-Tests prüfen, ob Ihre Serien stationär sind. Wenn Sie nur an Prognosen interessiert sind, wie von @JacobH angegeben, können Sie VAR in Ebenen ausführen, auch wenn Ihre Serien nicht stationär sind. Dann können Sie Ihren Standardfehlern jedoch nicht vertrauen, was bedeutet, dass Sie keine Rückschlüsse auf den Wert von ziehen können die Koeffizienten. Sie haben stationär mit dem ADF-Test getestet, der in diesen Anwendungen sehr häufig verwendet wird. Beachten Sie jedoch, dass Sie angeben sollten, ob Sie den Test ohne i) Konstante und ohne Trend ausführen möchten. ii) ein konstanter und kein Trend; und iii) eine Konstante und ein Trend. Normalerweise weisen Preisreihen stochastische Trends auf, sodass ein linearer Trend nicht genau ist. In diesem Fall können Sie die Spezifikation wählen. Ii. In Ihrem Code haben Sie diendiffs
Funktion des Prognosepakets. Ich bin nicht sicher, welche dieser drei Alternativen diese Funktion implementiert, um die Anzahl der Unterschiede zu berechnen (ich konnte sie in der Dokumentation nicht finden). Um Ihr Ergebnis zu überprüfen, können Sie die ur.df
Funktion im Paket "urca" verwenden:
adf <- ur.df(x[, "VAR1"], type = "drift", lags = 10, selectlags = "AIC")
Beachten Sie, dass dieser Befehl den ADF-Test mit einer Konstanten und den vom AIC-Befehl ausgewählten Verzögerungen mit einer maximalen Verzögerung von 10 ausführt. Wenn Sie Probleme bei der Interpretation der Ergebnisse haben, sehen Sie sich diese Frage an . Wenn es sich bei der Reihe um I (1) handelt, verwenden Sie einfach die Differenz, die der fortlaufenden Verzinsung entspricht. Wenn der Test anzeigt, dass die Serien I (2) sind und Sie Zweifel haben, dass Sie andere Tests verwenden können, z. B. Phillips-Perron-Test (PP.test
Funktion in R). Wenn alle Tests bestätigen, dass Ihre Serie I (2) ist (denken Sie daran, das Protokoll der Serie zu verwenden, bevor Sie die Tests ausführen), nehmen Sie den zweiten Unterschied, aber beachten Sie, dass sich Ihre Interpretation der Ergebnisse ändern wird, da Sie jetzt mit dem arbeiten Differenz der fortlaufenden Verzinsung. Die Preise von Vermögenswerten sind normalerweise I (1), da sie sich einem zufälligen Spaziergang nähern, was ein weißes Rauschen ist, wenn die erste Differenz angewendet wird.
4. Wählen Sie die Reihenfolge des Modells
Dies kann mit gängigen Kriterien wie Akaike, Schwarz (BIC) und Hannan-Quinn erfolgen. Sie haben das mit der VARselect
Funktion gemacht und das ist richtig, aber denken Sie daran, welches Kriterium Sie für Ihre Entscheidung verwendet haben. In der Regel weisen unterschiedliche Kriterien auf unterschiedliche Aufträge für den VAR hin.
5. Überprüfen Sie, ob es integrierende Beziehungen gibt
Wenn alle Serien I (1) oder I (2) sind, sollten Sie vor dem Ausführen eines VAR-Modells in der Regel prüfen, ob es keine Kointegrationsbeziehungen zwischen den Serien gibt, insbesondere, wenn Sie eine Impulsantwortanalyse mit dem durchführen möchten Residuen. Dies können Sie mit dem Johansenn-Test oder dem Engle-Granger (nur für bivariate Modelle) durchführen. In R können Sie den Johansen-Test mit der ca.jo
Funktion des Pakets "urca" ausführen. Beachten Sie, dass dieser Test auch andere Spezifikationen hat. Für Preisreihen verwende ich normalerweise den folgenden Code (wobei p
die Verzögerungslänge von Punkt 4 ist, ausgeführt mit den Reihen in Stufen):
jo_eigen <- ca.jo(x, type = "eigen", ecdet = "const", K = p)
jo_trace <- ca.jo(x, type = "trace", ecdet = "const", K = p)
6. Schätzen Sie das Modell
Wenn Ihre Reihen nicht integriert sind, können Sie das Modell mit dem VAR
Befehl wie in Ihrem Code beschrieben leicht abschätzen . Wenn die Reihen kointegriert sind, müssen Sie die langfristige Beziehung berücksichtigen, indem Sie ein Vektorfehlerkorrekturmodell mit dem folgenden Code schätzen (wobei k
die Reihenfolge der Kointegration gilt):
vecm <- cajorls(joeigen, r = k)
7. Führen Sie Diagnosetests durch
Um zu testen, ob Ihr Modell gut spezifiziert ist, können Sie einen Test der seriellen Korrelation für die Residuen durchführen. In Ihrem Code haben Sie einen Portmanteau-Test mit der serial.test
Funktion verwendet. Ich habe diese Funktion noch nie benutzt, finde sie aber in Ordnung. Im Paket MTS ist auch eine multivariate Version des Ljung-Box-Tests implementiert, die Sie mit der Funktion ausführen können mq
.
8. Machen Sie Vorhersagen
Wenn Sie sicher sind, dass Ihr Modell gut spezifiziert ist, können Sie die predict
Funktion wie in Ihrem Code verwenden. Sie können sogar Impulsantwortfunktionen zeichnen, um zu überprüfen, wie die Variablen mit der irf
Funktion auf einen bestimmten Schock reagieren .
9. Vorhersagen auswerten
Sobald Sie Ihre Vorhersagen getroffen haben, müssen Sie diese auswerten und mit anderen Modellen vergleichen. Einige Methoden zur Bewertung der Genauigkeit von Vorhersagen finden Sie hier. Hierzu ist es jedoch entscheidend, dass Sie Ihre Serie in ein Training und ein Testset unterteilen, wie im Link erläutert.