Das Time Series Pack enthält Funktionen zur Darstellung und Analyse von Zeitreihen: Modelle (AR, ARIMA, etc.), Korrelationen, Filterung, Modell-Identifikation, Schätzung von Parametern, Extrapolation, Spektralanalyse.
Aus einer Datenbank (Excel-Daten in CSV-Format) habe wir Schlusskurse in die Variable rates eingelesen,
siehe DerivateIntro.nb.
![[Graphics:../Images/DerivateApp_gr_177.gif]](../Images/DerivateApp_gr_177.gif)
![[Graphics:../Images/DerivateApp_gr_178.gif]](../Images/DerivateApp_gr_178.gif)
![[Graphics:../Images/DerivateApp_gr_179.gif]](../Images/DerivateApp_gr_179.gif)
Wir berechnen die (logarithmischen) täglichen Erträge.
![]()
![]()
Dies ist der mittlere tägliche Ertrag.
![[Graphics:../Images/DerivateApp_gr_182.gif]](../Images/DerivateApp_gr_182.gif)
Mittleren Ertrag entfernen.
![]()
![[Graphics:../Images/DerivateApp_gr_185.gif]](../Images/DerivateApp_gr_185.gif)
![[Graphics:../Images/DerivateApp_gr_186.gif]](../Images/DerivateApp_gr_186.gif)
Es ist eine Beobachtungstatsache, daß die Volatilität, also die Standardabweichungen der Erträge nicht konstant sind. Mittels GARCH-Modellen können nichtkonstante Volatilitäten modelliert werden.
Siehe Jorion, Chapter 9. Das einfachste Modell, GARCH(1,1) bringt die aktuellen Varianzen in Beziehung zum letzten Ertrag
und zur letzten Varianz
:
.
Im Time Series Pack sieht das so aus:
![]()
Maximum-Likelihood Fit der Parameter
,
und
:
![[Graphics:../Images/DerivateApp_gr_194.gif]](../Images/DerivateApp_gr_194.gif)
Hier sind die bestimmten Parameter:
![[Graphics:../Images/DerivateApp_gr_196.gif]](../Images/DerivateApp_gr_196.gif)
GARCH Schätzung der durchschnittlichen Varianz und Volatilität:
![[Graphics:../Images/DerivateApp_gr_198.gif]](../Images/DerivateApp_gr_198.gif)
Zum Vergleich: empirische Vola:
![[Graphics:../Images/DerivateApp_gr_200.gif]](../Images/DerivateApp_gr_200.gif)
GARCH-Schätzung der aktuellen Varianzen
![]()
Aktuelle Volas (Standardabweichungen):
![]()
![[Graphics:../Images/DerivateApp_gr_205.gif]](../Images/DerivateApp_gr_205.gif)
![[Graphics:../Images/DerivateApp_gr_206.gif]](../Images/DerivateApp_gr_206.gif)
Konfidenzbänder, nach Jorion, Value at Risk. Die Volatilitäten sind ja eigentlich die Standardabweichungen, also sollte die Mehrzahl der Erträge innerhalb eines Bandes von ±2 Standardabweichungen liegen. Diese Grafik zeigt das anschaulich.
![]()
![[Graphics:../Images/DerivateApp_gr_208.gif]](../Images/DerivateApp_gr_208.gif)
![[Graphics:../Images/DerivateApp_gr_209.gif]](../Images/DerivateApp_gr_209.gif)
Anteil "outlier", also Erträge, die außerhalb des Bandes liegen.
![[Graphics:../Images/DerivateApp_gr_210.gif]](../Images/DerivateApp_gr_210.gif)
Erwartete Zahl (etwa 5% bei 2SD):
![[Graphics:../Images/DerivateApp_gr_212.gif]](../Images/DerivateApp_gr_212.gif)
3-Monats LIBOR, 1981-1994, Datei Data/Libor3.txt. Analog wie Termstrukturen verarbeiten, enthält aber keine Kopfzeile.
![[Graphics:../Images/DerivateApp_gr_214.gif]](../Images/DerivateApp_gr_214.gif)
![[Graphics:../Images/DerivateApp_gr_216.gif]](../Images/DerivateApp_gr_216.gif)
![[Graphics:../Images/DerivateApp_gr_217.gif]](../Images/DerivateApp_gr_217.gif)
![[Graphics:../Images/DerivateApp_gr_218.gif]](../Images/DerivateApp_gr_218.gif)
![[Graphics:../Images/DerivateApp_gr_219.gif]](../Images/DerivateApp_gr_219.gif)
Veränderungen der kurzzeitigen Zinsen folgt einem selbstkorrigierenden Prozess. dz ist eine normalverteilte Zufallsvariable.
![[Graphics:../Images/DerivateApp_gr_220.gif]](../Images/DerivateApp_gr_220.gif)
Wir schätzen die Parameter a, b und σ nach der maximum likelihood Methode. Diese ist eine Verallgemeinerung der Methode der kleinsten Qudrate bei variablen Varianzen.
Zunächst benötigen wir die aktuellen Varianzen
und die Residuen
![[Graphics:../Images/DerivateApp_gr_223.gif]](../Images/DerivateApp_gr_223.gif)
Die Log-Likelihood
![[Graphics:../Images/DerivateApp_gr_225.gif]](../Images/DerivateApp_gr_225.gif)
Skalierung
![[Graphics:../Images/DerivateApp_gr_226.gif]](../Images/DerivateApp_gr_226.gif)
Gute Startwerte für die Maximierung erhalten wir aus einer linearen Schätzung (kleinste Quadrate)...
![[Graphics:../Images/DerivateApp_gr_227.gif]](../Images/DerivateApp_gr_227.gif)
![[Graphics:../Images/DerivateApp_gr_228.gif]](../Images/DerivateApp_gr_228.gif)
![[Graphics:../Images/DerivateApp_gr_230.gif]](../Images/DerivateApp_gr_230.gif)
...sowie aus der Standardabweichung der Daten
![[Graphics:../Images/DerivateApp_gr_232.gif]](../Images/DerivateApp_gr_232.gif)
Jetzt können wir maximieren:
![[Graphics:../Images/DerivateApp_gr_234.gif]](../Images/DerivateApp_gr_234.gif)
ist der Preis eines Zerobonds zur Zeit t mit Fälligkeit zur Zeit T nach Cox, Ingersoll, Ross.
![[Graphics:../Images/DerivateApp_gr_237.gif]](../Images/DerivateApp_gr_237.gif)
Für t=0 ist der aktuelle Zins gleich dem ersten Wert unserer Zinsreihe.
![[Graphics:../Images/DerivateApp_gr_238.gif]](../Images/DerivateApp_gr_238.gif)
![[Graphics:../Images/DerivateApp_gr_240.gif]](../Images/DerivateApp_gr_240.gif)
![[Graphics:../Images/DerivateApp_gr_242.gif]](../Images/DerivateApp_gr_242.gif)
![[Graphics:../Images/DerivateApp_gr_244.gif]](../Images/DerivateApp_gr_244.gif)
![[Graphics:../Images/DerivateApp_gr_245.gif]](../Images/DerivateApp_gr_245.gif)
Daraus die Zinssätze für Laufzeit T-t zur Zeit t.
![[Graphics:../Images/DerivateApp_gr_246.gif]](../Images/DerivateApp_gr_246.gif)
Hier der Zweijahreszins.
![[Graphics:../Images/DerivateApp_gr_247.gif]](../Images/DerivateApp_gr_247.gif)
Der kurzfriste Zins für
stimmt besser mit r1 überein als der 3Mt-Zins. Wir haben ja den Fehler gemacht mit 3Mt-Zinsen zu rechnen, statt mit den kurzfristigen Zinsen.
![[Graphics:../Images/DerivateApp_gr_250.gif]](../Images/DerivateApp_gr_250.gif)
![[Graphics:../Images/DerivateApp_gr_252.gif]](../Images/DerivateApp_gr_252.gif)
Die Zinskurve zur Zeit t=0 für Laufzeiten bis 10 Jahre.
![[Graphics:../Images/DerivateApp_gr_254.gif]](../Images/DerivateApp_gr_254.gif)
![[Graphics:../Images/DerivateApp_gr_255.gif]](../Images/DerivateApp_gr_255.gif)
Und nach 5 Jahren, wiederum für 10 Jahre.
![[Graphics:../Images/DerivateApp_gr_256.gif]](../Images/DerivateApp_gr_256.gif)
![[Graphics:../Images/DerivateApp_gr_258.gif]](../Images/DerivateApp_gr_258.gif)
![[Graphics:../Images/DerivateApp_gr_259.gif]](../Images/DerivateApp_gr_259.gif)