Prognosemodelle mit automatischen Aktualisierungsfunktionen

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:

Diese Abbildung zeigt die monatlichen Log-Renditen des S&P 500, beginnend im Januar 2010 bis November 2019. Der Datensatz hat eine Datumskomponente und einen Wert.

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.

In dieser Abbildung wird das Hinzufügen von Platzhalterdatenpunkten am Ende des Zeitreihendatensatzes demonstriert. Jeder neue Datenpunkt hat ein gültiges Datum und den Wert #N/A.

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.

In dieser Abbildung wird der GARCH-Assistent angezeigt. Der Eingabedatensatz verweist auf den Zellenbereich der Eingabezeitreihen einschließlich der am Ende des Datensatzes eingefügten Platzhalterdatenpunkte.

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.

Diese Abbildung zeigt die Tabelle des GARCH(2,2)-Modells, wie sie vom NumXL-GARCH-Assistenten erstellt wurde.

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

Diese Abbildung zeigt den Microsoft Solver mit initialisierten Werten zur Optimierung der Anpassungsgüte des GARCH-Modells an den Datensatz.

Microsoft Solver sucht nach einer optimalen Lösung für den GARCH-Prozess.

Diese Abbildung zeigt die Ergebnisfenster des Solvers, nachdem der Solver eine optimale Lösung gefunden hat.

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.

Diese Abbildung zeigt die Formel zur Berechnung der effektiven Größe des Eingabedatensatzes mit den Funktionen COUNT und RMNA.

Sie können das Enddatum des Datensatzes auch mit der in Excel integrierten Funktion INDEX(.) und der oben genannten Datensatzgröße berechnen.

Diese Abbildung zeigt die Formel zur Berechnung des Datums der letzten Beobachtung mit nicht fehlendem Wert in unserem Datensatz unter Verwendung der INDEX-Funktion und der effektiven Größe des Eingabedatensatzes.

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.

Diese Abbildung zeigt den Vorhersageassistenten für das GARCH-Modell. Beachten Sie, dass sich die letzte Beobachtung auf den Eingabedatensatz einschließlich der Platzhalterdatenpunkte bezieht.

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.

Diese Abbildung zeigt die vom NumXL-Assistenten erstellte Prognosetabelle für die folgenden 36 Monate. Beachten Sie, dass der Schritt (z.B. der Monat) als Zeiteinheit verwendet wird.

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:

Diese Abbildung zeigt die Formel zur Berechnung des Kalenderdatums für jede Periode in der Prognosetabelle mit Hilfe der Funktion NxEDATE.

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(.)).

Diese Abbildung zeigt die Formel für die Anpassung des berechneten Datums an den nächstgelegenen Arbeitstag mit der Funktion NxAdjust(.).

Das war's! Betrachten wir nun die Prognosetabelle und die monatliche Termstrukturkurve der Volatilität.

Diese Abbildung zeigt die Prognosetabelle mit einer Datumskalenderspalte und einer Volatilitäts-Termstrukturprognose für die folgenden 36 Monate.

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.

Diese Abbildung zeigt den Vorgang des Einfügens eines neuen Datenpunkts und des Ersetzens eines bestimmten Platzhalters.

Schritt 2: Beobachten Sie

Diese Abbildung zeigt die aktualisierte Berechnung der Datensatzgröße und des Enddatums sowie die Prognosetabelle und die Termstrukturkurve der Volatilität.

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.

Diese Abbildung veranschaulicht den Prozess der Rekalibrierung des GARCH-Modells anhand eines Datensatzes mit neuen Datenpunkten.

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).

  Anhänge

Kommentare

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.

War dieser Beitrag hilfreich?
1 von 1 fanden dies hilfreich