Datenanalyse mit Python: Wie man Ausreißer in Zeitreihen verlässlich erkennt
Liegen Ausreißer bei Zeitreihen zwischen den Extremwerten, tun sich gängige Verfahren beim Aufspüren schwer. Eine Kombination von Algorithmen zeigt Potenzial.
- Dr. Roland Pleger
Ausreißer sind Daten in einer Messreihe, die überraschen. Unerwartet hohe Temperaturmesswerte können auf einen defekten Sensor hinweisen oder einen Maschinenausfall ankündigen. Ausreißer, deren Werte von den erwarteten Daten abweichen, sind leicht zu erkennen. Ein Temperaturwert von 300 Grad Celsius an einer Wetterstation fällt sofort auf. Liegen die Ausreißer jedoch nah an den erwartbaren Daten und bleiben dadurch unentdeckt, können sie Messungen verzerren oder ihre Rolle als Frühwarnmittel nicht erfüllen.
Dieser Artikel zeigt, wie sich Ausreißer in Zeitreihen mit statistischen Verfahren identifizieren lassen: Häufig sind es Werte, die in den Messbereich passen, aber nicht in den zeitlichen Kontext. Als Beispiel dienen Photovoltaik-Leistungsdaten aus dem Jahr 2023, die der Übertragungsnetzbetreiber Amprion bereitstellt.
- Ausreißer in Zeitreihen sind besonders gemein, wenn die fehlerhaften Werte im erwartbaren Bereich liegen, aber eben zur falschen Zeit auftauchen.
- Im Graphen ist das mit bloßem Auge zu erkennen, Algorithmen zur Fehlersuche tun sich bei der genauen Erkennung jedoch manchmal schwer.
- Gängige Verfahren wie HDBSCAN, Local Outlier Factor (LOF) und Saison-Trend-Zerlegung mit LOESS (STL) erzielen brauchbare Ergebnisse, bergen jedoch individuelle Stolperfallen.
- Der unkonventionelle Einsatz von LOF anstelle von Z-Score bei der Analyse des Residuums von STL bringt einen deutlichen Qualitätsgewinn.
Bei den Skripten zum Artikel findet sich neben den Daten auch ein Datengenerator für rein stochastische Random-Walk-Daten mit unterschiedlichem Grad einer Datenglättung – der Generator ersetzt einen frei wählbaren Anteil der Originaldaten durch zufällig gewählte Zahlen aus dem Wertebereich. Dies sind die Ausreißer, die es zu identifizieren gilt. Das Vorgehen ermöglicht den Vergleich mit den unverfälschten Daten und eine Bewertung der Verfahren. Beispiele für verschiedene Zeitreihen zeigt die folgende Abbildung.
Das war die Leseprobe unseres heise-Plus-Artikels "Datenanalyse mit Python: Wie man Ausreißer in Zeitreihen verlässlich erkennt". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.