Direkt zum Inhalt

Facebook-Prophet: Ein moderner Ansatz für Zeitreihenprognosen

Versteh, wie Facebook Prophet Trends, Saisonalität und besondere Ereignisse modelliert, um genaue und verständliche Prognosen zu erstellen.
Aktualisierte 5. Nov. 2025  · 10 Min. Lesezeit

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:

Facebook Prophet-Gleichung zur Zerlegung von Zeitreihen

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:

  1. 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.
  2. 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:

  • pandas für die Datenbearbeitung

  • prophet das Prognosemodell erstellen

  • matplotlib zur 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 von Close )

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 %

MAPE-Gleichung

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()

Facebook Prophet Prognoseergebnis

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()

Saisonale Zerlegung von Facebook Prophet

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:


Vidhi Chugh's photo
Author
Vidhi Chugh
LinkedIn

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.

Themen
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Lernprogramm

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

Lernprogramm

Python-Lambda-Funktionen: Ein Leitfaden für Anfänger

Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mark Pedigo's photo

Mark Pedigo

Lernprogramm

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

Lernprogramm

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

Mehr anzeigenMehr anzeigen