Datenanalyse
Ein Dashboard kann sauber aussehen und trotzdem falsche Antworten liefern. Vor dem ersten Diagramm müssen Herkunft, Struktur, Einheiten, Zeiträume und Kennzahlen feststehen. Dieser Leitfaden zeigt die Prüfungen, die ich vor Auswertungen in meinen Datenanalyse-Projekten mache.
Die Frage
Das Diagramm kommt spät. Vorher muss feststehen, was eine Kennzahl überhaupt messen soll. „Wie entwickelt sich mein Portfolio?“ kann den Kontostand, die Wertentwicklung der Anlagen, den Depotwert inklusive Einzahlungen oder die reale Rendite nach Inflation meinen. Jede dieser Größen kann korrekt berechnet werden und trotzdem eine andere Antwort liefern.
Deshalb schreibe ich vor der Auswertung mindestens vier Dinge auf: Beobachtung, Zeitraum, Einheit und Regel. Eine monatliche Portfolio-Zeitreihe braucht zum Beispiel eine Definition dafür, ob 2026-01 den Monatsanfang, den Monatsendstand oder eine über den Monat gemittelte Zahl meint.
| Zielgröße | Was ist eine Beobachtung? | Einheit |
|---|---|---|
| Portfolio-Wert | Wert des Depots an einem festgelegten Stichtag | EUR |
| Periodenrendite | Veränderung zwischen zwei aufeinanderfolgenden Stichtagen | intern als Dezimalwert, z. B. 0,05 |
| Kumulierte Rendite | Veränderung vom ersten bis zum letzten Wert | Prozent |
| Einzahlung | Geldfluss, der von außen in das Portfolio kommt | EUR |
Kontext
Der Wert allein reicht selten. Zu einer Beobachtung gehören Quelle, Abrufzeitpunkt, Datum oder Zeitraum, Zeitzone, Einheit, Kennung und die Regel, mit der sie entstanden ist. Ohne diesen Kontext sieht eine Zahl im Export vollständig aus, lässt sich später aber nicht mehr sicher einordnen.
| Prüfung | Frage vor der Auswertung |
|---|---|
| Quelle | Wer liefert den Wert, und ist es eine Originalreihe, ein Proxy oder eine eigene Schätzung? |
| Zeit | Welches Datum gilt, welche Zeitzone wird verwendet und ist der Wert Tages-, Monats- oder Quartalsdaten zugeordnet? |
| Granularität | Repräsentiert eine Zeile genau einen Tag, einen Monat, ein Wertpapier oder bereits eine Summe? |
| Einheit | Steht der Wert für EUR, USD, Prozent, Prozentpunkte, Stück, Gramm oder einen Indexstand? |
| Definition | Ist es ein Preis, eine Rendite, ein Preisindex, ein Total-Return-Wert oder ein Forecast? |
Eine Zeile pro Tag lässt sich nicht automatisch mit einer Zeile pro Monat vergleichen. Wenn du die Daten zusammenführst, brauchst du eine bewusste Aggregation. Ein Monatsendstand, ein Monatsdurchschnitt und die Summe der täglichen Renditen sind drei verschiedene Größen.
Im Assetklassen-Backtester wird deshalb für jede Reihe festgelegt, was genau verglichen wird. S&P 500, Bitcoin und Gold klingen im Gespräch eindeutig. Im Modell sind es aber konkrete Datenreihen mit eigener Währung, eigenem Handelskalender und eigener Datenquelle.
Datenpipeline
Ich trenne Rohdaten von der bereinigten Arbeitsdatei. Die Rohdatei bleibt so erhalten, wie sie geliefert wurde. In der bereinigten Datei stehen einheitliche Datumsformate, Spaltennamen und Zahlenformate. So lässt sich später unterscheiden, ob ein Fehler aus der Quelle kam oder bei der Umwandlung entstanden ist.
Ein konkretes Beispiel aus der Datenarbeit hinter meinem Backtester: Einige vermeintliche CSV-Abrufe lieferten zwar den HTTP-Status 200, im Inhalt steckte aber eine HTML-Seite. Wer nur den Statuscode prüft, meldet den Download als erfolgreich und schiebt den Fehler erst später in den Parser oder ins Dashboard.
Einheiten
Der häufigste Fehler ist nicht die Formel, sondern die Darstellung davor. Eine Rendite von 5 Prozent kann in einer Tabelle als 0,05 gespeichert und im Dashboard als 5,0 % angezeigt werden. Beide Schreibweisen beschreiben denselben Wert, aber nur eine davon darf an die jeweilige Rechenfunktion gehen.
| Feld | Interne Darstellung | Anzeige |
|---|---|---|
| Rendite | 0,05 | 5,0 % |
| Anteil | 0,25 | 25 % |
| Preis | 123,45 | 123,45 € |
| Wechselkurs | 1,08 | 1,08 USD je EUR |
Dazu kommen Prozentpunkte, Basispunkte, Preis und Rendite, nominale und reale Werte sowie verschiedene Währungen. Ein Feld sollte deshalb eine eindeutige Definition haben. Prozentzeichen gehören in die Anzeige, nicht ungeprüft in eine Spalte, deren Parser eine reine Zahl erwartet.
Der schnellste Gegencheck ist ein bekannter Datensatz. Nimm einen Wert, rechne ihn von der Rohdatei bis zur Anzeige durch und vergleiche jeden Zwischenschritt. Ein einzelner Testfall findet Dezimalfehler oft früher als ein vollständiger Dashboard-Screenshot.
Fehlende Werte
Eine echte Null ist eine Beobachtung. Ein leerer Wert bedeutet meist, dass keine Beobachtung vorliegt. Diese beiden Fälle dürfen nicht dieselbe Bedeutung bekommen.
Angenommen, ein Portfolio steht im Januar bei 10.000 € und im Februar bei 10.500 €. Für März fehlt der Datenpunkt. Setzt du die Lücke auf 0 % Rendite, sieht der März wie ein stabiler Monat aus. Setzt du den Wert auf den letzten Stand von 10.500 €, wirkt der Chart vollständig, obwohl für März keine neue Beobachtung existiert. Beide Ersatzwerte verändern die Auswertung.
Diese Trennung ist im Assetklassen-Backtester zentral. Börsen haben am Wochenende geschlossen, Bitcoin handelt durchgehend. Für den gemeinsamen Chart wird der letzte bekannte Wert dargestellt. Die Risikokennzahlen verwenden dagegen echte Beobachtungen, damit Wochenenden nicht als zusätzliche Tage mit 0 % Rendite in die Volatilität eingehen. Die Methodik ist dort ausführlich beschrieben.
Eindeutigkeit
Eine Zeile mit Datum und Wert ist noch keine eindeutige Beobachtung. Der Schlüssel muss zum Modell passen. Bei einer täglichen Kursreihe kann er aus Reihe + Datum bestehen. Bei einem Portfolio mit mehreren Konten gehört die Konto-ID dazu. Bei Monatswerten muss klar sein, ob eine nachträgliche Quellenrevision den alten Wert ersetzt oder als neue Version gespeichert wird.
| Fehler | Mögliche Wirkung | Saubere Reaktion |
|---|---|---|
| Doppeltes Datum | Ein Monat oder Tag zählt doppelt und bekommt zu viel Gewicht. | Schlüssel prüfen, Revision entscheiden, Abweichung protokollieren. |
| Absteigende Zeit | Renditen werden in umgekehrter Reihenfolge berechnet. | Datum parsen und vor der Kennzahl aufsteigend sortieren. |
| Locale-Fehler | 1.234,56 wird als 1,23456 oder 123456 gelesen. | Dezimal- und Tausendertrennzeichen für die Quelle festlegen. |
| Quellenrevision | Alte und neue Version stehen gleichzeitig in der Reihe. | Version markieren und genau eine gültige Beobachtung auswählen. |
Zwei unterschiedliche Werte für denselben Tag werden nicht automatisch gemittelt. Das wäre eine neue fachliche Regel und kann einen Fehler verdecken. Zuerst muss geklärt werden, ob eine Quelle korrigiert wurde, ob zwei Handelsplätze zusammengefallen sind oder ob das Datum falsch zugeordnet wurde.
Plausibilität
Ein Wert kann als Zahl parsebar, positiv und im üblichen Bereich sein und trotzdem die falsche Bedeutung haben. Plausibilitätsprüfungen brauchen deshalb zwei Ebenen: technische Fehler, die den Import stoppen, und fachliche Warnungen, die eine Kontrolle verlangen.
| Prüfung | Beispiel | Entscheidung |
|---|---|---|
| Technisch ungültig | Datum nicht lesbar, Pflichtspalte fehlt, Inhaltstyp passt nicht. | Import stoppen und Fehler melden. |
| Strukturell ungültig | Doppelter Schlüssel ohne geklärte Revision. | Datensatz zurückhalten, nicht still mitteln. |
| Fachliche Warnung | Ungewöhnlicher Sprung, lange Lücke oder veralteter letzter Datenpunkt. | Markieren und prüfen; echte Sprünge nicht automatisch überschreiben. |
| Definition prüfen | Forecast steht in derselben Reihe wie historische Ist-Werte. | Trennen und im Dashboard sichtbar kennzeichnen. |
Grenzwerte sind Hinweise, keine Wahrheiten. Ein Kurs kann an einem Tag stark steigen. Ein Nährstoffwert kann außerhalb des erwarteten Bereichs liegen, weil ein neues Produkt erfasst wurde. Die Prüfung soll den Blick auf die Stelle lenken. Sie soll keine Daten passend machen.
Kennzahlen
Bei einer monatlichen Portfolio-Zeitreihe reicht der Durchschnitt der Monatsrenditen nicht automatisch als Jahresrendite. Renditen werden über den Weg des Portfolios miteinander verknüpft. Die Kennzahl muss außerdem wissen, ob Einzahlungen und Entnahmen enthalten sind.
Ein kleines Beispiel zeigt den Unterschied: Auf einen Monat mit +10 % folgt ein Monat mit −10 %. Das arithmetische Mittel ist 0 %. Der Wertpfad ist trotzdem kleiner geworden: 1,10 × 0,90 − 1 = −1 %. Das Dashboard muss benennen, welche dieser Größen es zeigt.
Wenn in der Reihe zusätzlich 1.000 € eingezahlt werden, misst Endwert / Startwert − 1 die Mischung aus Anlageergebnis und Einzahlung. Für eine Renditeauswertung brauchst du dann eine Definition, die Cashflows berücksichtigt, etwa eine zeitgewichtete oder geldgewichtete Rendite. Die Formel ist kein Ersatz für diese Entscheidung.
Vor dem Chart
Für ein kleines Dashboard reicht dafür oft eine Prüfseite oder ein Protokoll mit wenigen klaren Feldern. Es muss kein großes Data-Quality-System entstehen. Entscheidend ist, dass ein fehlerhafter Import sichtbar wird, bevor er als bunte Grafik weitergereicht wird.
Meine Projekte
Im Assetklassen-Backtester beginnt die Arbeit vor der Kurve: konkrete Datenreihe auswählen, Währung und Wechselkurs festlegen, Handelskalender berücksichtigen, fehlende Beobachtungen trennen und den Datenstand offenlegen. Der Chart zeigt am Ende nur, was diese Regeln zulassen. Er kann keine unklare Reihe nachträglich eindeutig machen.
Im Ernährungsrechner liegt der Fehler an einer anderen Stelle, die Regel ist aber dieselbe. Preis und Nährwerte beziehen sich auf eine definierte Referenz. Funktionen wie foodPrice(f), UNIT_META und buildModel() bauen darauf auf. Wenn ein Wert pro 100 g gespeichert ist, der Solver ihn aber als Packung interpretiert, kann er einen mathematisch zulässigen Plan finden, der fachlich nicht stimmt.
Ein Dashboard und ein Solver sehen verschieden aus. Beide brauchen vor der Berechnung eine klare Antwort auf dieselben Fragen: Was bedeutet eine Zeile? Welche Einheit hat der Wert? Welche Beobachtungen fehlen? Welche Regel entscheidet über eine Abweichung? Erst danach lohnt sich die Frage, wie das Ergebnis angezeigt wird.
Wähle Zeitraum und Anlageklassen und lies Datenreihe, Endwert und Risiko gemeinsam mit der Methodik.
Weiterlesen