In diesem Newsletter geht es darum, ein Prognosemodell (z. B. ARMA, GARCH, Regression) so einzurichten, dass Sie (oder jemand anderes) es leicht pflegen können, wenn neue Datenpunkte verfügbar werden und die Prognosen automatisch aktualisiert werden.
Zur Veranschaulichung haben wir ein GARCH-Modell für die monatlichen Renditen des S&P 500 ETF definiert, die Werte der Parameter kalibriert und eine Termstruktur für die Volatilitätsprognose für die folgenden 36 Monate erstellt. Dann fügten wir einen neuen Datenpunkt ein und beobachteten das Modell, indem wir das Startdatum der Prognose vorverlegten und die Prognosewerte aktualisierten.
Warum sollte Sie das interessieren?
In der Praxis erstellen wir viele Excel-basierte Modelle, einige davon zur einmaligen Verwendung, aber viele Arbeitsblätter werden oft mit Kollegen geteilt, gelegentlich überarbeitet und bleiben lange Zeit bestehen. Es ist relativ einfach, Ihr Arbeitsblatt für eine automatische Aktualisierung vorzubereiten. Wenn Sie dies getan haben, können Sie problemlos neue Datenpunkte hinzufügen oder bestehende überarbeiten und Ihre Berechnungen mit minimalem Aufwand aktualisieren.
Fertig, lasst uns loslegen!
Vorbereitung der Daten
Für dieses Tutorial verwenden wir die monatlichen Log-Renditen des S&P 500 ETF (SPY) zwischen Januar 2010 und November 2019:
Zunächst sollten wir den aktuellen Datensatz mit Platzhaltern versehen. Dazu werden die Datumsangaben vorangestellt (z. B. Dez. 2019, Jan. 2019) und als Werte "#N/A" eingegeben.
Modellierung
Wir haben uns für ein GARCH(2,2) mit den Innovationen der Studenten entschieden, um die zeitlich variierende monatliche Volatilitätsdynamik für diesen Datensatz zu erfassen. Um das Modell zu definieren, suchen Sie eine leere Zelle in Ihrem Arbeitsblatt und klicken Sie dann auf das Symbol "GARCH" in der Symbolleiste "NumXL", woraufhin sich der GARCH-Assistent öffnet.
Wählen Sie im Abschnitt "Eingabedaten" den Zellenbereich für die monatlichen Erträge aus, einschließlich der Platzhalter, die Sie zuvor hinzugefügt haben. Keine Sorge, die NumXL-Funktionen verwerfen Beobachtungen mit "#N/A"-Werten an beiden Enden des Eingabezellenbereichs.
Wählen Sie ARCH und GARCH im Abschnitt Modellspezifikationen und setzen Sie die Reihenfolge auf 2. Klicken Sie auf "Student t-Verteilung" unter dem Abschnitt Innovationen. Klicken Sie nun auf die Schaltfläche "OK", um Ihre Auswahl zu bestätigen.
Der GARCH-Assistent generiert die Modelltabelle und initialisiert die Parameterwerte auf gültige, aber suboptimale Werte. Um einen optimalen Satz von Werten für die GARCH-Parameter zu finden, markieren Sie die Kopfzelle der Modelltabelle und klicken Sie auf das Symbol "Kalibrieren" in der Symbolleiste "NumXL". Microsoft Solver öffnet sich mit allen eingestellten Werten. Klicken Sie auf Solve
Microsoft Solver sucht nach einer optimalen Lösung für den GARCH-Prozess.
Datenexploration
Wir haben bereits erwähnt, dass die NumXL-Funktionen alle Beobachtungen im Eingabezellenbereich mit einem Wert gleich "#N/A" verwerfen. Woher wissen Sie, wo der Datensatz endet?
Um die obige Frage zu beantworten, müssen Sie zunächst die Größe des Datensatzes mit zwei Funktionen berechnen: RMNA(.) und COUNT(.). RMNA(.) verwirft Datenpunkte mit "#N/A" und gibt ein Array mit allen nicht fehlenden Beobachtungen zurück, und COUNT(.) gibt die Größe dieses Arrays zurück.
Sie können das Enddatum des Datensatzes auch mit der in Excel integrierten Funktion INDEX(.) und der oben genannten Datensatzgröße berechnen.
Sie haben also einen Datensatz mit 119 nicht fehlenden Werten, und die letzte Beobachtung fiel in den November 2019.
Vorhersage
Für dieses Lernprogramm müssen Sie die monatliche Volatilitätsprognose für die folgenden 36 Monate erstellen. Markieren Sie dazu die Kopfzeile der Modelltabelle und klicken Sie auf das Symbol "Prognose" in der NumXL-Symbolleiste.
Wählen Sie im Abschnitt "Letzte Beobachtungen" den Zellenbereich in Spalte "B" aus, einschließlich der Beobachtung mit fehlenden Werten (d. h. #N/A).
Für die Volatilität lassen Sie das Feld leer, und der NumXL verwendet die vom GARCH-Modell selbst berechnete In-Sample-Volatilität. Klicken Sie auf die Schaltfläche "OK".
Der Prognoseassistent erstellt eine Prognosetabelle, die die Zeiteinheit in Form von Schritten (z. B. Monat) nach dem Ende des Eingabedatensatzes ausdrückt.
Im Laufe der Zeit wird durch das Hinzufügen neuer Datenpunkte das Datum der letzten Beobachtung (mit einem nicht fehlenden Wert) vorverlegt, was sich auf die Interpretation der Schritteinheit in der Prognosetabelle auswirkt. Um diesem Problem zu begegnen, haben wir auf der linken Seite der Prognosetabelle eine Spalte hinzugefügt, die das entsprechende Kalenderdatum angibt.
Um das entsprechende Datum für jeden Schritt zu berechnen, verwenden wir die Funktionen NxEDATE(.) und CONCAT(.), wie unten gezeigt:
Unter Verwendung des Enddatums des Datensatzes gibt die Funktion NxEDATE(.) die Daten zurück, die nach N Monaten liegen, wobei N die Anzahl der Schritte in der Prognosetabelle ist.
Was passiert, wenn die neuen Daten auf ein Wochenende oder einen Feiertag fallen? Da es sich bei unserem Datensatz um eine Finanzzeitreihe handelt, muss das Datum auf einen Werktag fallen; andernfalls wird das Datum auf den nächstgelegenen Werktag verschoben (NxAdjust(.)).
Das war's! Betrachten wir nun die Prognosetabelle und die monatliche Termstrukturkurve der Volatilität.
Das GARCH-Modell zeigt eine niedrige Volatilität - im Vergleich zum historischen Niveau (d.h. 3,8%), prognostiziert aber einen stetigen Anstieg der Volatilität im kommenden Jahr.
Hinzufügen von Datenpunkten
Untersuchen wir, was passiert, wenn wir die monatliche Rendite von Dezember 2019 haben, sagen wir -0,6 %.
Schritt 1: Geben Sie den neuen Wert in das Dataset ein.
Schritt 2: Beobachten Sie
Die Größe des Eingabedatensatzes wurde auf 120 erhöht, und das Enddatum ist jetzt Dezember 2019.
In der Prognosetabelle ist das entsprechende Datum für den ersten Schritt jetzt Januar 2020 (vorher Dezember 2019), und die Laufzeitstruktur der Volatilität ist anders (weniger glatt).
Schritt 3: Fortgeschrittene
Die obige Prognosetabelle verwendet denselben GARCH-Prozess, den wir zuvor kalibriert haben, insbesondere den Wert der Parameter.
Nehmen wir einmal an, Sie möchten das Modell neu kalibrieren, aber die ARCH/GARCH-Ordnungen (d. h. P und Q) und die Innovationsverteilung (z. B. Student t) unverändert lassen.
Wählen Sie wie zuvor die Kopfzeile der GARCH-Modell-Tabelle aus und klicken Sie auf das Symbol Kalibrieren" in der NumXL-Symbolleiste.
Der Solver öffnet sich, aber dieses Mal beginnt die Optimierung (d.h. der Anfangswert) mit den optimalen Werten der Parameter aus dem letzten Lauf. Wir erwarten also eine schnelle Umstellung.
Klicken Sie auf die Schaltfläche "Solver", um den Optimierungsprozess zu starten.
Nach Abschluss des Vorgangs zeigt der Solver ein Dialogfeld "Lösung finden" an. Klicken Sie auf die Schaltfläche OK, um die Werte der neuen Parameter in die Modelltabelle zu kopieren.
Um die Auswirkungen der Neukalibrierung auf Ihre Prognose zu untersuchen, sehen Sie sich Ihre Prognosewerte in der Tabelle (und im Diagramm) an.
Schlussfolgerung
In diesem Tutorial haben wir die beiden Schritte zum Einrichten Ihrer Modelle für die automatische Aktualisierung untersucht:
- Hinzufügen von Platzhalter-Datenpunkten am Ende des Eingabedatensatzes,
- Wählen Sie den Datensatz mit den Platzhalter-Datenpunkten im Modell und in der Prognose aus.
Wenn die Zeit fortschreitet und neue Beobachtungen eintreten, geben wir ihre tatsächlichen Werte in den Datensatz ein (anstelle von #N/A), und Excel aktualisiert die Berechnung aller referenzierenden Zellen (z. B. die Prognosetabelle).
Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.