Firmen müssen zukünftige Trends einschätzen können, um strategische Entscheidungen zu treffen, wie zum Beispiel die Prognose von Produktverkäufen oder die Einschätzung von Nachfrageschwankungen. Eine Möglichkeit, gute Vorhersagen zu machen, ist die Zeitreihenprognose. Ein Hauptprinzip der Zeitreihenprognose ist, dass sie sich auf historische Datenwerte stützt, um zukünftige Ergebnisse vorherzusagen. Das bedeutet, dass man bei den Daten vorsichtig sein muss, weil praktische Daten oft verrauscht sind oder fehlen und daher schwer vorherzusagen sind.
Es gibt zwar viele Tools für Zeitreihenprognosen, aber Facebook Prophet wurde speziell entwickelt, um mit den Komplexitäten der realen Welt umzugehen, die von nichtlinearen Trends und Saisonalitäten bis hin zu den Auswirkungen besonderer Ereignisse wie Feiertagen und Marketingkampagnen oder Traffic-Spitzen reichen. Wenn du dich mit Zeitreihenprognosen überhaupt nicht auskennst, empfehle ich dir, unseren Kurs „Zeitreihenanalyse in Python” und/oder unseren Kurs „Prognosen in R” zu besuchen.
Was ist Facebook Prophet?
Prophet ist eine Open-Source-Prognosebibliothek, die vom Core Data Science Team von Facebook entwickelt wurde. Es ist sowohl in Python als auch in R verfügbar. Ein Grund, warum Datenanalysten und Datenwissenschaftler es gerne nutzen, ist, dass es viele der langweiligen Schritte der traditionellen Prognosemethoden automatisiert. Mit dieser Flexibilität können Leute schnell verständliche und gute Prognosen erstellen.
Das Kernmodell-Framework von Facebook Prophet
Der Modellierungsansatz von Facebook Prophet ist strukturiert und trotzdemflexibel. Es zerlegt eine Zeitreihe in vier Hauptkomponenten: Trend, Saisonalität, Feiertage und Fehler. Die dritte Komponente, die ich als „Feiertage“ bezeichnet habe, ist nicht so üblich. Die klassische und die STL-Zerlegung teilen alles in drei Teile auf: Trend, Saisonalität und Fehler.
Indem wir zeigen, wie Trends, Saisonabhängigkeiten und Feiertage zur endgültigen Prognose beitragen, hilft die Zerlegung dabei, die Schlussfolgerungen des Modells zu überprüfen, wenn wir versuchen, fundierte Entscheidungen zu treffen.
Zerlegung von Zeitreihen
Prophet nutzt ein additives Modell, bei dem die Zeitreihen y(t) l wie folgt ausgedrückt wird:
Wo,
-
Der Trend (
g(t)) zeigt, ob es langfristig aufwärts oder abwärts geht. -
Saisonalität (
s(t)) umfasst wiederkehrende Muster wie wöchentliche, monatliche oder jährliche Schwankungen. -
Feiertagseffekte (
h(t)) sind unregelmäßige, aber vorhersehbare Ereignisse, wie zum Beispiel der Black Friday oder nationale Feiertage. -
Der Fehler (
et) ist das Restrauschen, das nicht durch die anderen Komponenten erklärt werden kann.
Es macht nicht nur klar, welche Faktoren die Vorhersagen beeinflussen, sondern automatisiert auch den Großteil des Zeitreihenvorhersageprozesses, wie zum Beispiel die Erkennung von Saisonalität und die Behandlung fehlender Werte.
Durch die Übernahme dieser komplizierten Vorverarbeitungsaufgaben macht Prophet umfangreiches statistisches Fachwissen, das bei herkömmlichen statistischen Methoden oft nötig ist, weniger wichtig. ARIMA braucht zum Beispiel, dass bestimmte Annahmen über die Stationarität stimmen und berücksichtigt externe Faktoren nicht wirklich, während Prophet saisonale Effekte und Feiertage direkt einbezieht, was es für Geschäftsprognosen einfacher macht.
Trendkomponentenspezifikation
Prophet hat zwei Trendmodelle:
- Das logistische Wachstumsmodell ist nützlich, wenn eine Zeitreihe bei maximaler Kapazität ihren Sättigungspunkt erreicht, ähnlich wie bei der Akzeptanz einer neuen App durch die Nutzer.
- Das stückweise lineare Modell teilt den Trend in Abschnitte mit Wendepunkten auf, was es einfacher macht, plötzliche Veränderungen im Wachstum zu modellieren.
Saisonale Modellierung
Die Saisonalität wird mit einer Fourier-Reihe modelliert, die glatte periodische Funktionen in Zeitreihendaten ermöglicht. Es gibt zwei Hauptformen des saisonalen Verhaltens:
- Additive Saisonalität ist nötig, wenn die saisonalen Schwankungen über die Zeit hinweg gleich stark bleiben.
- Multiplikative Saisonalität ist sinnvoll, wenn saisonale Schwankungen mit dem Trend mitwachsen, wie zum Beispiel steigende Verkaufszahlen bei einem allgemeinen Marktwachstum.
Außerdem können Leute auch eigene Saisonabhängigkeiten festlegen, um einzigartige, bereichsspezifische Muster darzustellen, z. B. vierteljährliche Werbeaktionen.
Feiertage und Events einbinden
Prophet bietet auch die Möglichkeit, sowohl vordefinierte Feiertage als auch beliebige Listen von Ereignissen einzubauen. Das ist besonders praktisch, wenn man Konjunkturzyklen, kulturelle Feiertage oder einmalige Events wie Produkteinführungen modelliert. Man kann auch unerwartete Ereignisse wie COVID-19 als zusätzliche Regressoren hinzufügen, um Prognosen dynamisch zu aktualisieren. Wenn man solche Ereignisse genau modelliert, wird es genauer und man versteht besser, wie besondere Daten die zugrunde liegenden Trends beeinflussen.
Umgang mit Lärm und Ausreißern
Echte Daten haben oft Rauschen und Ausreißer, was zu verzerrten Modellvorhersagen führen kann. Prophet hat robuste Verlustfunktionen und nichtparametrische Trendkomponenten, die die Vorhersage robuster gegenüber Ausreißern in den Daten machen.
Um die Prognosestabilität weiter zu verbessern, ist es sinnvoll, Residuenplots zu analysieren und Daten durch Winsorisierung oder Entfernung von Anomalien vorzuverarbeiten. Diese Schritte sorgen dafür, dass das Modell echte Trends lernt und nicht nur zufälliges Rauschen.
Wann man Facebook Prophet nutzen sollte (und wann nicht)
Wie die meisten Modelle und Techniken des maschinellen Lernens ist Prophet keine Lösung, die für alle passt. Zu wissen, wo es gut ist und wo nicht, ist wichtig, um es effektiv zu nutzen.
Stärken und ideale Szenarien
Prophet ist besonders gut, wenn:
- Wenn die Daten eine klare tägliche, wöchentliche oder jährliche Saisonalität aufweisen.
- Die Datensätze sind nicht komplett und man muss fehlende Werte und Ausreißer automatisch bearbeiten.
- Die Leute brauchen schnelle explorative Analysen und eine erste Modellentwicklung.
Durch seine Einfachheit ist es auch für Leute mit wenig Statistik-Know-how gut nutzbar, und dank seiner Verständlichkeit können Analysten und Datenwissenschaftler die Ergebnisse gut an Leute ohne technischen Hintergrund rüberbringen.
Einschränkungen und mögliche Probleme
Prophet könnte in den folgenden Situationen weniger passend sein:
- Daten, die echt unbeständig sind oder nicht saisonabhängig, also ohne regelmäßige Muster.
- Langfristige Prognosen, wenn Trends schwer zu sagen sind.
- Nichtlineare Trends werden von den stückweise linearen oder logistischen Modellen nicht erfasst.
Eine goldene Regel bei der Verwendung von Prophet oder jedem anderen Prognosemodell ist, es nicht einfach blind zu übernehmen. Ohne ordentliche Validierung können Modelle leicht zu übertriebenen oder irreführenden Prognosen führen, wie man auch in verschiedenen Community-Diskussionen und bei einigen bekannten Prognosefehlern sehen kann.
Arbeiten mit Prophet in Python
Schritt 1: Bibliotheken importieren
Lade zuerst alle benötigten Python-Pakete:
-
pandasfür die Datenbearbeitung -
prophetdas Prognosemodell erstellen -
matplotlibzur Visualisierung -
sklearn.metrics– um MAPE, die Fehlermetrik, zu berechnen
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_percentage_error
Schritt 2: Lade den Datensatz
Als Nächstes checken wir unsere CSV-Datei mit den historischen Gold-Futures-Preisen. Hier ist einLink zu dem Kaggle-Datensatz, den ich benutze.
file_path = "future-gc00-daily-prices.csv"
gold_ts = pd.read_csv(file_path)
Schritt 3: Die Daten bereinigen
Jetzt müssen wir die Daten bereinigen. Das heißt, wir:
-
Entferne Kommas aus numerischen Spalten und wandle sie in Fließkommazahlen um.
-
Mach die Spalte „
Date” aus dem String-Format in ein Datums-/Zeitformat um.
Dadurch wird sichergestellt, dass Prophet Datumsangaben richtig versteht und sortiert.
for col in ["Open", "High", "Low", "Close"]:
gold_ts[col] = gold_ts[col].str.replace(",", "").astype(float)
gold_ts["Date"] = pd.to_datetime(gold_ts["Date"], format="%m/%d/%Y")
Schritt 4: Sortiere die Daten nach Datum
Wir sortieren die Daten nach dem Datum. Das ist ein wichtiger Schritt, den man leicht übersehen kann.
gold_ts = gold_ts.sort_values("Date")
Schritt 5: Daten für Prophet vorbereiten
Wir müssen auch die Daten für Prophet vorbereiten, das erwartet, dass seine Eingabespalten wie folgt benannt sind:
-
ds→ Datumsstempel -
y→ zu prognostizierender Wert (hier der Preis vonClose)
gold_ts = gold_ts[["Date", "Close"]].rename(columns={"Date": "ds", "Close": "y"})
Schritt 6: In Trainings- und Testsätze aufteilen
Jetzt teilen wir die Daten in Trainings- und Testversionen auf.
- Die meisten Daten für das Training aufbewahren.
- Heb die letzten 180 Zeilen (oder 10 %, wenn es weniger sind) für die Überprüfung der Genauigkeit des Modells auf.
test_size = min(180, len(gold_ts) // 10)
train = gold_ts.iloc[:-test_size]
test = gold_ts.iloc[-test_size:]
Schritt 7: Pass das Prophet-Modell an
Trainiere Prophet mit den historischen Daten, wobei sowohl die täglichen als auch die jährlichen saisonalen Komponenten aktiviert sind.
model = Prophet(daily_seasonality=True, yearly_seasonality=True)
model.fit(train)
Schritt 8: Zukünftige Werte prognostizieren
Wir machen Vorhersagen für genauso viele Tage wie im Testsatz.
Die Prognose hat Spalten wie „ yhat “ (voraussichtlich), „ yhat_lower “ und „ yhat_upper “.
future = model.make_future_dataframe(periods=test_size)
forecast = model.predict(future)
Schritt 9: Prognosen mit den tatsächlichen Zahlen abgleichen
Verbindet die tatsächlichen Schlusskurse mit den Modellprognosen zu den entsprechenden Terminen, um sie direkt zu vergleichen.
merged = pd.merge(test, forecast[["ds", "yhat"]], on="ds", how="inner")
Schritt 10: MAPE berechnen
Jetzt schauen wir mal, wie genau die Prognose ist. Wenn sich die Termine nicht überschneiden, gibt's 'ne Warnung, statt dass das Programm abstürzt.
if merged.empty:
print("No overlapping dates between forecast and test set.")
else:
mape = mean_absolute_percentage_error(merged["y"], merged["yhat"]) * 100
print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")
Hier ist der mittlere absolute prozentuale Fehler (MAPE): 5,83 %
Schritt 11: Zeichne die Prognose auf
Wir zeigen die Prognose, die Konfidenzintervalle und die tatsächliche Historie.
fig1 = model.plot(forecast)
plt.title("Gold Futures (GC00) - Close Price Forecast")
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.show()

Schritt 12: Saisonale Komponenten darstellen
Es ist echt hilfreich zu zeigen, wie Trend-, Tages- und Jahres-Saisonalitätsmuster zur Prognose beitragen.
fig2 = model.plot_components(forecast)
plt.show()

Schritt 13: Prognose-Beispiele anschauen
Zeig die letzten paar vorhergesagten Werte und ihre Unsicherheitsbereiche an.
print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(10))
Beispiel für prognostizierte Werte:
ds yhat yhat_lower yhat_upper
3714 2023-11-09 1834.568081 1743.127873 1922.791205
3715 2023-11-10 1833.323500 1749.265678 1937.246093
3716 2023-11-11 1832.818196 1740.941278 1921.772611
3717 2023-11-12 1832.370884 1745.285047 1925.012684
3718 2023-11-13 1832.644350 1736.792708 1919.057042
3719 2023-11-14 1832.017761 1736.229502 1929.786669
3720 2023-11-15 1831.650906 1743.190077 1924.851936
3721 2023-11-16 1831.566521 1738.181184 1933.026740
3722 2023-11-17 1830.427713 1736.038529 1919.505155
3723 2023-11-18 1830.029816 1737.022754 1922.118728
Facebook Prophet überprüfen und testen
Validierungsmethode
Um echte Prognoseszenarien zu simulieren, braucht man eine Zeitreihen-Kreuzvalidierung. Es ist wichtig, die Modellleistung anhand mehrerer aufeinanderfolgender Validierungssätze zu checken. Das hilft nicht nur, Vorhersageverzerrungen zu vermeiden, sondern macht es auch möglich, die Ergebnisse auf zukünftige, noch unbekannte Daten zu übertragen.
Einige der Standardbewertungskennzahlen sind:
- Der mittlere absolute Fehler (MAE) misst , wie groß die Fehler im Durchschnitt sind, ohne auf die Richtung zu achten.
- Der mittlere absolute prozentuale Fehler (MAPE) misst die durchschnittliche absolute prozentuale Differenz. Es lässt sich leicht auf verschiedenen Ebenen verstehen. Das ist das, was wir uns in unserem Python-Beispiel angeschaut haben.
Vergleichende Analyse
Im Vergleich zu ARIMA oder LSTM ist Prophet gut darin:
- Umgang mit unregelmäßigen saisonalen Schwankungen und Feiertagseffekten
- Zeigt, dass es mit fehlenden Daten, Ausreißern und geschäftlichen Unregelmäßigkeiten gut klappt.
Allerdings kann Prophet in Fällen, wo es um stark nichtlineare Muster oder Datensätze mit schwacher Saisonalität geht, schlechter abschneiden.
Praktische Anwendungen und Einschränkungen
Praxisnahe Fallstudien
Prophet wird in vielen Branchen für verschiedene Sachen genutzt, zum Beispiel:
- Prognosen für den Einzelhandelsumsatz, Einschätzung der Nachfrage und Verwaltung der Lagerbestände
- Prognose des Web-Traffics, um das Nutzerengagement zu verstehen
- Prognose des Energiebedarfs, um Angebot und Verbrauch effizient aufeinander abzustimmen.
Trotz der Vorteile gab es Fälle, in denen historische Muster wegen unerwarteter Störungen nicht mehr funktionierten, wie zum Beispiel während der Pandemie.
Skalierbarkeitsbeschränkungen
Prophet kann mit ziemlich großen Datensätzen umgehen, was für die meisten geschäftlichen und betrieblichen Prognoseaufgaben gut passt. Allerdings ist es bei extrem großen Datensätzen oder hochfrequenten Zeitreihen ziemlich rechenintensiv, weil es auf dem Bayes'schen Modellierungsrahmen basiert. Um das zu vermeiden, sollte man mehrere Zeitreihen gleichzeitig prognostizieren. Ein anderer praktischer Ansatz ist, Daten zusammenzufassen oder herunterzuskalieren. Es spart Speicherplatz und Laufzeit, ohne dass wichtige zeitliche Muster verloren gehen.
Wichtige Einschränkungen
Prophet geht von einer einzigen Zielvariablen aus und modelliert ihren Trend mit stückweise linearen oder logistischen Wachstumskurven. Solche Annahmen können die Flexibilität bei Problemen mit mehreren Variablen oder ohne deutlichen Trend einschränken. Deshalb müssen die Nutzer Prophet's Prognosen mit Fachwissen und externen Validierungen ergänzen, um die Zuverlässigkeit sicherzustellen.
Pannen und Kritik in der Praxis
Bekannte Prognosefehler, wie der Zusammenbruch des Immobilienmarktes von Zillow, zeigen, wie riskant es sein kann, sich zu sehr auf automatisierte Prognosesoftware zu verlassen. Wenn man den Ergebnissen von Modellen zu viel vertraut, ohne sie von Menschen überprüfen zu lassen, kann das zu teuren Fehlern führen. Deshalb ist es ratsam, bei der Interpretation der Prognoseergebnisse eine gründliche Validierung und Szenarioplanung durchzuführen.
Zögere nicht, jedes Modell und jeden Trend zu hinterfragen. Schaff eine Kultur, die kritisches Denken fördert und es den Teams ermöglicht, den Status quo zu hinterfragen. Ich hab gesehen, wie solche Teams immer wieder starke Prognoselösungen entwickelt haben.
Zu guter Letzt empfehle ich dir, nach dem Motto „Vertrauen ist gut, Kontrolle ist besser“ vorzugehen und deine Ergebnisse mit deinem Fachwissen noch mal zu checken.
Zukünftige Entwicklung
Prophet entwickelt sich durch Forschung und Beiträge der Community immer weiter. Zu den laufenden Verbesserungen in Prophet gehören:
- Multivariate Unterstützung
- Bessere Skalierbarkeit für große Datensätze
- Von der Community entwickelte Erweiterungen
Aktive Forschung bedeutet, neue statistische Methoden zu integrieren und die Leistung bei komplexen, hochfrequenten Datensätzen zu verbessern.
Fazit
Facebook Prophet ist ein echt starkes Tool für Zeitreihenprognosen, das Automatisierung, Interpretierbarkeit und Flexibilität bietet. Es eignet sich gut für explorative Prognosen in der Wirtschaft und anderen Bereichen mit starken saisonalen Schwankungen oder besonderen Ereignissen.
Aber das heißt nicht, dass es eine Plug-and-Play-Lösung ist. Um zuverlässige Vorhersagen zu machen, müssen die Nutzer auf eine sorgfältige Validierung, Parametereinstellung und Fachkenntnisse achten. Durch die Kombination der Automatisierung von Prophet mit gut durchdachten menschlichen Entscheidungen können Analysten umsetzbare Erkenntnisse gewinnen und häufige Fehler vermeiden.
Wenn du praktisch lernen willst, schau dir unsere Kurse und Skill Tracks an:

Ich bin KI-Stratege und Ethiker und arbeite an der Schnittstelle von Datenwissenschaft, Produkt und Technik, um skalierbare maschinelle Lernsysteme zu entwickeln. Als einer der "Top 200 Business and Technology Innovators" der Welt bin ich auf der Mission, das maschinelle Lernen zu demokratisieren und den Fachjargon zu überwinden, damit jeder an diesem Wandel teilhaben kann.
FAQs
Wofür wird Facebook Prophet genutzt?
Facebook Prophet wird für Zeitreihenprognosen genutzt und hilft dabei, Trends, saisonale Schwankungen und die Auswirkungen von Ereignissen in Daten wie Umsatz, Nachfrage oder Web-Traffic vorherzusagen.
Wie geht Prophet mit Feiertagen und besonderen Ereignissen um?
Prophet lässt dich vordefinierte oder eigene Ereignisse zum Modell hinzufügen, die unregelmäßige Spitzen oder Einbrüche in der Zeitreihe berücksichtigen.
Warum ist Prophet so beliebt für Geschäftsprognosen?
Prophet ist automatisiert, leicht zu verstehen und robust gegenüber fehlenden Daten und Ausreißern, was es super für schnelle und zuverlässige Prognosen macht.
Wann sollte man Facebook Prophet nicht nutzen?
Man kann Prophet vermeiden, wenn die Daten super volatil oder nicht saisonabhängig sind oder wenn die Trends echt unvorhersehbar sind.
Was sind die Hauptvorteile von Prophet gegenüber ARIMA?
Im Gegensatz zu ARIMA braucht Prophet keine strenge Stationarität, kann mit fehlenden Daten umgehen und erkennt automatisch Änderungszeitpunkte.



