Bachelorarbeit · Kovarianzprognosen mit PCA
AbgeschlossenEine reproduzierbare Python-Pipeline von Finanzmarktdaten bis zur Prognose und Auswertung. Ich untersuche, wie viel sich mit einem einzigen PCA-Indikator vorhersagen lässt.
- Aktualisiert
- 2026-09-18
Die Fragestellung
Wie weit lässt sich die Prognose einer Kovarianzmatrix vereinfachen? In meiner Bachelorarbeit habe ich untersucht, ob sich ihre zeitliche Entwicklung mit einem dominanten PCA-Indikator beschreiben und prognostizieren lässt.
Dafür habe ich Minutenpreise von Bitcoin, Ether und BNB aus dem Jahr 2024 verarbeitet. Aus den Log-Renditen entstehen nicht überlappende 30-Minuten-Kovarianzmatrizen. Die PCA-Basis wird auf dem Trainingszeitraum geschätzt und bleibt für die spätere Auswertung unverändert.
Was ich umgesetzt habe
Ich habe eine Python-Pipeline aufgebaut, die die Datenbeschaffung, Validierung, Modellierung und Auswertung miteinander verbindet.
- Download der Monatsarchive und Prüfung von Checksummen, Zeitstempeln, Vollständigkeit und Preiswerten.
- Berechnung von Renditen und Kovarianzmatrizen mit pandas und NumPy.
- Prognose des dominanten Indikators mit ARFIMA(0, d, 0) und Rekonstruktion der Kovarianzmatrizen.
- Vergleich mit zwei einfachen Persistenzprognosen in einem chronologischen Holdout.
- Automatische Erzeugung von Ergebnisgrafiken und Tabellen.
Dabei habe ich die Datenverarbeitung, Prognose und Evaluation in getrennte Module aufgeteilt. Die Analyseskripte und das Reproduktionsnotebook verwenden dieselben Implementierungen.
Ergebnisse einordnen
Im Holdout mit 8.784 Kovarianzmatrizen lag der aggregierte RMSE des ARFIMA-basierten Verfahrens 22,70 % unter der direkten Kovarianzpersistenz. Diese Baseline verwendet jeweils die zuletzt beobachtete Matrix als nächste Prognose.
Der Vorteil war zeitlich ungleich verteilt. Das Verfahren hatte nur an 35,3 % der Prognosezeitpunkte den kleineren Fehler gegenüber dieser Baseline. Auch die Reduktion auf einen Indikator verursachte einen deutlichen Darstellungsverlust. Das Ergebnis gilt deshalb für die untersuchten Daten und das gewählte Versuchsdesign. Es belegt keine allgemeine Überlegenheit oder bessere Anlageentscheidungen.
Nachvollziehbarkeit
Die Abhängigkeiten sind mit uv.lock festgehalten. Unit-Tests prüfen unter anderem Prognosegewichte, Parameterschätzung, Kovarianzrekonstruktion und Fehleraggregation. Ein ausgeführtes Jupyter-Notebook führt durch die Analyse und gleicht die Ergebnisse mit den berichteten Kennzahlen ab.
Für mich gehören zu diesem Projekt neben der Modellierung auch die Datenprüfungen und die saubere Trennung zwischen einem beobachteten Ergebnis und dem, was man daraus tatsächlich schließen kann.