TATECHATLAS
◎ Deutsch
Mathematik und Modelle

Vergleich einer Zeitreihenprognose mit einer saisonalen Basislinie

Erstellen Sie eine Vorjahresreferenz, bewerten Sie sie anhand späterer Beobachtungen und unterscheiden Sie zwischen Kalenderausrichtung, Datenlecks und fehlenden Werten.

Auf dieser Seite

Eine saisonale Basislinie prognostiziert einen Wert basierend auf dem entsprechenden Wert der vorherigen Saison. Bei regelmäßig angeordneten monatlichen Beobachtungen mit jährlicher Saisonalität wird der Wert von zwölf Perioden zuvor verwendet. Vergleichen Sie Ihr Modell und die Basislinie für identische zukünftige Zeitpunkte unter ausschließlicher Nutzung der zum jeweiligen Prognosezeitpunkt verfügbaren Informationen. Eine geringe Trainingsfehlerrate allein zeigt nicht, dass das Modell diese einfache Referenz verbessert.

Wählen Sie eine Referenz, die zur Aufgabe passt

Ein Gesamtmittelwert ignoriert, wo ein Wert innerhalb eines sich wiederholenden Zyklus liegt. Wenn die Nachfrage zwischen den Monaten systematisch variiert, kann der entsprechende Monat des Vorjahres eine informativere Referenz darstellen. Dies ist eine Hypothese, die überprüft werden muss, nicht der Beweis dafür, dass jede Zeitreihe saisonal ist.

Wählen Sie die Periodenlänge basierend auf dem Beobachtungsintervall und dem tatsächlichen Prozess. Zwölf Zeilen bedeuten nur dann ein Jahr, wenn es sich um eine vollständige monatliche Serie handelt. Bei täglichen Daten oder Tabellen mit fehlenden Monaten beschreiben zwölf Zeilen ein anderes Intervall. Die Basislinie sollte dem Prognoseziel entsprechen, nicht einer willkürlichen Array-Länge.

Halten Sie den Zeitindex regelmäßig und explizit

Sortieren Sie die Beobachtungen chronologisch und prüfen Sie doppelte Zeitstempel, Lücken und Zeiteinheiten. In Pandas unterscheidet sich das Verschieben von Werten um Perioden vom Indexverschieben mit einer Frequenz. Für eine verzögerte Referenz müssen die Werte mit den zukünftigen Datumsangaben ausgerichtet sein, die sie vorhersagen sollen.

Füllen Sie Lücken nicht stillschweigend mit späteren Werten auf, da dies Informationen preisgeben könnte, die zum Prognosezeitpunkt noch nicht verfügbar waren. Falls die Serie unregelmäßig ist, passen Sie die Kalenderperioden explizit an oder wählen Sie eine andere Referenz. Entscheidungen zu fehlenden Beobachtungen sollten konsistent für Modell und Basislinie gelten.

Ein kleines monatliches Beispiel

Das Beispiel verwendet die Standardbibliothek von Python und vierundzwanzig synthetische, gleichmäßig verteilte monatliche Beobachtungen. Die ersten zwölf Werte repräsentieren ein Jahr, die nächsten zwölf sind um zwei Einheiten erhöht. Es handelt sich um illustrative Daten, keine echten Messungen oder Belege für reale Prognoseleistung.

Für das zweite Jahr prognostiziert eine Verzögerung von zwölf Beobachtungen die Werte des ersten Jahres. Die ersten zwölf Positionen haben in diesem Datensatz keinen früheren saisonalen Bezug und können daher durch diese Basislinie nicht bewertet werden. Ersetzen Sie fehlende Referenzen niemals durch zukünftige Beobachtungen.

# Illustrative monthly observations, January through December twice.
values = [10, 12, 15, 18, 20, 22, 21, 19, 17, 14, 12, 11]
values += [value + 2 for value in values]
period = 12
actual = values[period:]
predicted = values[:-period]
mae = sum(abs(a - p) for a, p in zip(actual, predicted)) / len(actual)
print(predicted[:3])
print(mae)
# Expected illustrative output:
# [10, 12, 15]
# 2.0

Interpretieren Sie den Fehler in den ursprünglichen Einheiten

Hier weicht jede Prognose um zwei Einheiten ab, sodass der illustrierte mittlere absolute Fehler (MAE) 2,0 beträgt. Diese Rechnung gilt ausschließlich für die hier verwendeten Beispieldaten. Sie sagt nichts über eine unbekannte reale Serie aus oder ob zwei Einheiten für die Anwendung akzeptabel sind.

Bewerten Sie Ihr Modell auf denselben Zielzeitpunkten und in denselben Einheiten. Vergleichen Sie die Fehler nicht nur insgesamt, sondern auch nach Saison: Ein Durchschnittswert kann wiederholte Fehlschläge in einem kritischen Monat verbergen. Dokumentieren Sie, welche Beobachtungen ausgeschlossen wurden, weil kein gültiges Ziel oder keine gültige verzögerte Referenz verfügbar war.

Trennen Sie Vergangenheit von Zukunft

Ein zufälliger Train-Test-Split kann zukünftige Beobachtungen in das Training einschließen, während frühere Daten im Test landen. Bei Prognosen verwenden Sie stattdessen eine chronologische Aufteilung. Zu jedem Prognosezeitpunkt dürfen Merkmale und Vorverarbeitungsschritte nur auf Basis der bis dahin verfügbaren Informationen erstellt werden.

TimeSeriesSplit bietet standardmäßig aufeinanderfolgende, zeitlich geordnete Trainings- und Testfenster mit wachsendem Trainingsumfang. Die Interpretation vergleichbarer Dauer setzt gleichmäßige Abstände voraus. Wählen Sie test_size und eventuelle Lücken passend zur Aufgabe; die Bibliothek legt den geschäftlichen Prognosehorizont nicht automatisch fest.

Unterscheiden Sie Ein-Schritt- und Mehr-Schritt-Prognosen

In einer rollierenden Evaluierung kann ein Wert, der zu einem Zeitpunkt nicht verfügbar war, vor dem nächsten Prognosezeitpunkt bekannt werden. Eine Prognose für mehrere Monate gleichzeitig hat eine andere Informationsgrundlage. Bewerten Sie eine solche Mehr-Schritt-Prognose nicht so, als ob alle dazwischenliegenden tatsächlichen Werte bereits bekannt wären.

Eine saisonale Verzögerung ist nur nutzbar, wenn der referenzierte Wert zum jeweiligen Prognosezeitpunkt bekannt ist. Bei Horizonten länger als eine saisonale Periode zeigen einige direkte Lag-Referenzen in den Prognosezeitraum und erfordern eine definierte Strategie. Legen Sie diese Strategie vor dem Fehlervergleich fest, nicht danach.

Prüfen Sie, warum die Basislinie gut oder schlecht abschneidet

Eine Änderung des Niveaus, Trends, ein verschobener Feiertag oder ein geänderter Geschäftsprozess kann die Vorjahresperiode zu einem schlechten Prädiktor machen. Untersuchen Sie datierte Residuen und bekannte Ereignisse. Eine Verbesserung gegenüber der Basislinie in einem ungewöhnlichen Zeitfenster ist schwächeres Indiz als eine Verbesserung über mehrere repräsentative spätere Fenster hinweg.

Vergleichen Sie bei schlechter Leistung der saisonalen Referenz mit einer letzten-Beobachtung- oder anderen einfachen Basislinien. Halten Sie die Evaluationsdaten identisch. Vermeiden Sie es, viele Modelle an einem endgültigen Holdout-Zeitraum zu optimieren, bis dieser effektiv Teil des Trainingsdatensatzes wird.

Entscheiden Sie, ob das erweiterte Modell nützlich ist

Ein komplexeres Modell ist nützlich, wenn es ein relevantes Fehlermaß auf späteren Daten ausreichend verbessert, um seine Wartungs- und Betriebskosten zu rechtfertigen. Definieren Sie, was wichtig ist: typischer absoluter Fehler, große Abweichungen, bestimmte Saisons oder die Kosten einer Über- versus Unterprognose.

Behalten Sie die Basislinie nach der Implementierung als Referenz bei. Änderungen im Datenprozess können einen früheren Vorteil zunichtemachen. Die Überwachung vergleichbarer Fehler ermöglicht eine fundierte Entscheidung, das Modell beizubehalten, anzupassen oder zu vereinfachen, ohne fiktive Leistungsgarantien zu erfinden.

Was Sie prüfen sollten

  • Stellen Sie einen regelmäßigen Zeitindex und eine begründete saisonale Periode sicher.
  • Verwenden Sie nur Beobachtungen, die zum jeweiligen Prognosezeitpunkt bekannt sind.
  • Bewerten Sie Modell und Basislinie auf identischen späteren Zielwerten.
  • Geben Sie den Prognosehorizont und die Strategie für fehlende Daten an.

Eine saisonale Basislinie benötigt frühere übereinstimmende Beobachtungen und ausreichend stabile Wiederholungen. Sie begründet keine kausalen Zusammenhänge, garantiert keine Genauigkeit und kann strukturelle Brüche, unregelmäßige Zeitstempel oder Mehr-Schritt-Horizonte nicht automatisch verarbeiten.

Quellen

  1. pandas: time series ↗
  2. scikit-learn: TimeSeriesSplit ↗
Nach oben ↑