Knoten festlegen

Weiter zu:

Funktionsweise des knots-Arguments

Meridian verwendet einen zeitvariablen Intercept-Ansatz für die Modellierung von Zeiteffekten (Spline (Mathematik), Wikipedia. Ng, Wang und Dai. 2021). Bei diesem Ansatz werden Zeiteffekte \(\mu = [\mu_1, \dots, \mu_T]\) für jeden der \(T\) Zeiträume modelliert. Ein dreijähriges MMM auf Wochenebene hat \(52 \times 3\) Zeiträume. Die \(T\) Zeiteffekte werden mit möglicherweise weniger als \(T\) Parametern anhand der Beziehung modelliert:

\[\mu = W \ast b\]

Dabei gilt:

  • \(\mu\) ist \(1 \times T\) und repräsentiert die Wirkung des einzelnen Zeitraums \(t=1, \dots ,T\), \(W\) ist eine \(T \times K\) deterministische Gewichtsmatrix.

  • \(b\) (in Meridian knot_values genannt) ist \(K \times 1\) , wobei \(K \leq T\)ist.

Die bayessche Posterior-Inferenz wird für \(b\)durchgeführt und gemäß der Gewichtsmatrix \(W\)in\(\mu\) umgewandelt. Die Anzahl der Knoten \(K\) wird durch die Nutzereingabe bestimmt. Die Gewichtsmatrix \(W\) wird durch die L1-Distanz eines Zeitraums zu den beiden benachbarten Knoten bestimmt.

Um zu verdeutlichen, wie die Gewichtsmatrix anhand der L1-Distanz bestimmt wird, betrachten wir den Zeitraum \(9\), in dem sich die beiden benachbarten Knoten bei \(6\) und \(11\)befinden. Die L1-Distanz zwischen dem Zeitraum \(9\) und dem Knoten \(11\) beträgt \(2\). Die L1-Distanz zwischen dem Zeitraum \(9\) und dem Knoten \(6\) beträgt \(3\). Der Knoten bei \(6\) erhält also das Gewicht \(0.4 = 1 - \frac{3}{2+3} \) und der Knoten bei \(11\) das Gewicht \(0.6 = 1 - \frac{2}{2+3} \). Der Wert von \(\mu_9\)wird durch das gewichtete Mittel der beiden benachbarten Knoten bestimmt.

Bei knots < n_times wird die Dimensionalität teilweise reduziert. Die n_times Zeiträume werden mit weniger als n_times Parametern modelliert. Mit der Gewichtungsfunktion wird festgelegt, wie die Zeiträume kombiniert werden.

Anzahl der Knoten für Zeiteffekte im Modell auswählen

Wenn Sie überlegen, wie Sie knots von ModelSpec festlegen, sollten Sie sich die beiden Extreme vorstellen: Die Anzahl der Knoten kann von einem bis zur Anzahl der Zeiträume (n_times) liegen. Bei knots = n_times wird die Dimensionalität nicht reduziert und jeder Zeitraum erhält einen eigenen Parameter. Bei einem Modell auf geografischer Ebene können so viele Knoten wie Zeiträume vorhanden sein, da es pro Zeitraum mehrere geografische Einheiten und damit mehrere Beobachtungen gibt. Bei knots = 1 werden alle Zeiträume mit einem einzigen Parameter analysiert. Hier hat die Zeit keine Bedeutung. Dieser fehlende Effekt wird zu einem gemeinsamen Intercept für alle Zeiträume.

Bei 1 < knots < n_times liegt die Anzahl der Knoten genau zwischen diesen beiden Extremen. Sie können einen Bereich von Werten ausprobieren, der den zulässigen Bereich abdeckt. Informationen dazu, wie Sie den Mittelweg zwischen diesen beiden Extremen finden, sind unter Kompromiss zwischen Bias und Varianz verfügbar.

Wir empfehlen Folgendes:

  • Bei Modellen auf geografischer Ebene sollten Sie mit der Standardeinstellung (knots = n_times) beginnen. Wenn Sie feststellen, dass die Überanpassung extrem ist oder die Schätzungen der Media-Effekte unrealistisch sind, sollten Sie die Anzahl der Knoten reduzieren. Die Notwendigkeit, die Anzahl der Knoten zu reduzieren, nimmt mit abnehmender Anzahl der geografischen Einheiten pro Zeitpunkt zu.

  • Bei Modellen auf nationaler Ebene sollten Sie standardmäßig mit 1 Knoten beginnen und die Anzahl der Knoten dann erhöhen. Erhöhen Sie die Anzahl so lange, bis die Überanpassung extrem wird oder die Schätzungen der Media-Effekte unrealistisch werden.

  • Eine ähnliche Anzahl von Knoten kann ähnliche Ergebnisse liefern, z. B. knots = 10 und knots = 11. Daher kann es hilfreich sein, eine größere Variation auszuprobieren.

Kompromiss zwischen Bias und Varianz

Die Anzahl der Knoten kann als Kompromiss zwischen Bias und Varianz betrachtet werden. Bei knots = n_times erhält jeder Zeitraum einen eigenen Parameter. Der Effekt eines bestimmten Zeitraums wird also nur anhand der Daten aus diesem Zeitraum geschätzt. knots = n_times weist jedoch eine hohe Varianz auf, da in einem bestimmten Zeitraum weniger Datenpunkte verfügbar sind.

Bei knots < n_times wird jeder Knoten anhand der Daten der benachbarten Zeiträume geschätzt. Dabei werden Zeiträume, die näher liegen, stärker gewichtet. Weil die beiden nächstgelegenen Knoten die Inferenz für einen bestimmten Zeitraum bestimmen, wird die Auswirkung eines bestimmten Zeitraums anhand der Daten dieses und der benachbarten Zeiträume geschätzt. Je weniger Knoten vorhanden sind, desto stärker wirken sich benachbarten Zeiträume auf die Inferenz für einen bestimmten Zeitraum aus. Dabei werden die nächstgelegenen Zeiträume stärker gewichtet. Dadurch wird die Varianz verringert, da immer mehr Zeiträume zur Schätzung der Auswirkungen eines bestimmten Zeitraums verwendet werden. Die Daten stammen jedoch nicht aus dem entsprechenden Zeitraum, was den Bias erhöht.

Zusammenfassend lässt sich sagen, dass mehr Knoten den Bias bei Schätzungen der Zeiteffekte verringern, während weniger Knoten die Varianz bei entsprechenden Schätzungen verringern. Als Analyst können Sie festlegen, welchen Kompromiss Sie im Hinblick auf Bias und Varianz eingehen möchten. Wenn die Zeit ein wichtiger Störfaktor zwischen Media und KPI ist, führt der Kompromiss zwischen Bias und Varianz bei der Schätzung der Zeiteffekte zu einem Kompromiss zwischen Bias und Varianz bei der Schätzung der kausalen Effekte von Media.

Außerdem können Sie für verschiedene Zeiträume unterschiedliche Kompromisse zwischen Bias und Varianz festlegen. Dazu legen Sie knots auf eine Liste fest, die Knotenpositionen angibt. Knoten können in Bereichen mit geringem Bias der Schätzungen (z. B. in der Festtagssaison) dicht und in Bereichen mit geringer Varianz der Schätzungen (z. B. in der Vor- und Nachsaison) spärlich verteilt sein.

Wann sollten weniger Knoten verwendet werden?

Wenn Sie die Anzahl der Knoten festlegen, kann es auch hilfreich sein, darüber nachzudenken, wie sich der Zeitraum auf die Media-Ausführung auswirkt. Kontrollvariablen sollten Störvariablen sein, die sich sowohl auf die Media-Ausführung als auch auf den KPI auswirken. Weitere Informationen zu Kontrollvariablen

Eine ähnliche Logik gilt für die Zeit. Wenn der Zeitraum kein Faktor für die Media-Ausführung ist, ist er keine echte Störvariable. Es ist dann nicht nötig, zu viele Freiheitsgrade für die Modellierung der Zeit mit vielen Knoten zu verwenden. Werbetreibende müssen überlegen, ob der Zeitraum bei der Planung der Media-Ausführung eine Rolle spielt. So hängt die Mediaplanung eines Reiseunternehmens wahrscheinlich vom Zeitraum ab. Eine Snackmarke hat dagegen möglicherweise eine konsistentere Mediaplanung über verschiedene Zeiträume hinweg. Überlegen Sie auch, ob die Zeit wirklich eine wichtige Störvariable ist oder ein Proxy für eine andere Variable, die direkt modelliert werden kann, wahrscheinlich mit weniger Freiheitsgraden. War Zeit wirklich die Störvariable, die die Media-Ausführung beeinflusst hat? Oder lag es an der Anzahl der COVID-19-Fälle landesweit? Werbetreibende kennen ihre eigene Strategie für die Mediaplanung und haben Einblick in diese Themen.

Wann Sie knots < n_times verwenden müssen

In bestimmten Fällen müssen Sie knots < n_times festlegen, z. B. in einem Modell auf nationaler Ebene, in dem Sie nicht mehrere Beobachtungen pro Zeitraum haben und für jeden Zeitraum nicht genügend Freiheitsgrade für einen eigenen Parameter vorhanden sind. Beachten Sie, dass eine gewisse Reduzierung der Dimensionalität erforderlich ist.

Ein weiteres Beispiel ist, wenn Sie eine Media- oder Kontrollvariable auf nationaler Ebene angeben müssen. Variablen auf nationaler Ebene ändern sich im Zeitverlauf, aber nicht geografisch. Eine solche Variable ist perfekt kollinear mit der Zeit und daher redundant mit einem Modell, das einen Parameter für jeden Zeitraum hat. Wenn Sie knots nahe an n_times festlegen, können Sie technisch gesehen ein identifizierbares Modell haben. Es kann jedoch sein, dass es nur schwer identifizierbar ist und zu Problemen führt. Angesichts der Schwierigkeiten bei der Schätzung von Zeiteffekten in einem nationalen Modell sind hochwertige Kontrollvariablen dort noch wichtiger als in einem geografischen Modell. Weitere Informationen

Automatische Auswahl von Knoten in Meridian

Die Auswahl von Knoten kann schwierig sein, weil ein Kompromiss zwischen Bias und Varianz für zuverlässige kausale Inferenz erforderlich ist. Außerdem muss der geschäftliche Kontext berücksichtigt werden, um genau darzustellen, wie sich die Zeit auf Media und KPIs auswirkt. Darüber hinaus sind Tests und Fehler Teil des iterativen Prozesses zur Modelloptimierung. Um diese Herausforderungen zu meistern, bietet Meridian die Funktion zur automatischen Auswahl von Knoten (Automatic Knot Selection, AKS).

Diese Funktion basiert auf der Methodik in Spline-Regression mit automatischer Auswahl von Knoten, enthält aber mehrere benutzerdefinierte Verbesserungen. Im Grunde verwendet der Algorithmus die lineare Spline-Basis, um die Beziehung zwischen Zeit (Knoten) und der skalierten Ergebnisvariablen zu modellieren. Dabei wird ein Verfahren zur Rückwärtselimination verwendet, das mit einer vollständigen Gruppe potenzieller Knoten beginnt und sequenziell diejenigen entfernt, die die Modellanpassung nicht verbessern. Die Anpassung wird mithilfe einer Regularisierungsmethode bewertet, bei der das Modell für unnötige Komplexität (d. h. Anzahl der Knoten) bestraft wird. Eine wichtige Änderung in der Version von Meridian ist eine geografisch bezogene Strafe, die mehr Knoten fördert, wenn die Anzahl der geografischen Einheiten in den Daten zunimmt. Das liegt daran, dass mit mehr geografischen Einheiten mehr Daten für jeden Zeitraum verfügbar sind, sodass das Modell Zeiteffekte besser schätzen kann. Die endgültige optimale Menge an Knoten wird anhand des Akaike-Informationskriteriums (Akaike Information Criterion, AIC) bestimmt, um sicherzustellen, dass das Modell Trend- und Saisonalitätsmuster genau erfasst.

Automatische Auswahl von Knoten verwenden

Wenn Sie AKS in Ihrem Meridian-Modell aktivieren möchten, setzen Sie den Parameter enable_aks in ModelSpec auf True.

model_spec = spec.ModelSpec(enable_aks=True)
mmm = model.Meridian(model_spec=model_spec)

Sobald AKS in ModelSpec aktiviert ist, können Sie die Liste der Knoten abrufen, die von Meridian ausgewählt wurden.

knot_info = mmm.knot_info
selected_knots = knot_info.knot_locations

Es ist nützlich, die Knoten abzurufen, um sie zu überprüfen oder anzupassen. Sie können beispielsweise Knoten in Zeiträumen hinzufügen, in denen Sie einen geringen Bias in den Schätzungen bevorzugen (z. B. im Weihnachtsgeschäft), sofern diese Zeitpunkte nicht bereits vom AKS-Algorithmus ausgewählt wurden. Weitere Informationen dazu, wann Sie Knoten hinzufügen sollten, finden Sie unter Kompromiss zwischen Bias und Varianz.

Wenn Sie beispielsweise einen neuen Knoten am Zeitpunkt 52 hinzufügen möchten, erstellen Sie eine neue Liste und verwenden Sie sie, um eine neue ModelSpec zu definieren.

modified_knots = np.append(selected_knots, 52)
model_spec = spec.ModelSpec(knots=modified_knots)

Praktische Hinweise

Hier sind einige Tipps für die Arbeit mit AKS:

  • Mit dem Standard beginnen: In den meisten Anwendungsfällen bietet es sich an, die Knoten von AKS auswählen zu lassen. So wird ein gutes Gleichgewicht zwischen der Anpassung des Modells und der Komplexität (d. h. der Anzahl der Knoten im Modell) erreicht.

  • Ergebnisse prüfen: Nachdem Sie AKS in ModelSpec aktiviert haben, sollten Sie die ausgewählten Knoten immer prüfen, um sicherzugehen, dass sie im Kontext Ihrer Daten sinnvoll sind.

  • Knoten manuell anpassen: Sie können Knoten manuell hinzufügen oder entfernen, um sie an Ihren geschäftlichen Kontext anzupassen. So können Sie beispielsweise während der Feiertage Knoten hinzufügen, um den Bias in Ihren Schätzungen zu verringern, oder in der Nebensaison einige Knoten entfernen, um die Varianz zu verringern. Weitere Informationen finden Sie unter Kompromiss zwischen Bias und Varianz.

  • Mit verschiedenen Einstellungen experimentieren: Scheuen Sie sich nicht, verschiedene Strategien zur Knotenauswahl auszuprobieren, um herauszufinden, welche für Ihren spezifischen Datensatz und Ihre Modellierungsziele am besten geeignet sind.

Andere Ansätze zur Modellierung von Zeiteffekten: binäre Indikatoren und periodische Funktionen

Sie können binäre Indikatoren oder periodische Funktionen als Kontrollvariablen erstellen und eingeben, um Zeiteffekte in Meridian zu modellieren. Beide bieten je nach Fall Vorteile.

Meridian empfiehlt, Kontrollvariablen einzubeziehen, die Störvariablen sind, also Variablen, die sowohl die Media-Ausführung als auch den KPI ursächlich beeinflussen. Kontrollvariablen im Zusammenhang mit Zeiteffekten sind davon nicht ausgenommen. Weitere Informationen

Binäre Indikatoren

Ein binärer Indikator hat den Wert 1, wenn eine Bedingung erfüllt ist, und andernfalls den Wert 0. Beispiel: Der Wert 1 für alle Zeiträume im Dezember und der Wert 0 für alle anderen Zeiträume. In Meridian können binäre Indikatoren als Kontrollvariablen verwendet werden, um Zeiteffekte zu modellieren, die über eine Reihe von Zeiträumen hinweg konsistent sind und optional nach geografischer Einheit variieren. Knoten und binäre Indikatoren können zusammen verwendet werden. Achten Sie jedoch auf die Gesamtzahl der Parameter, die zur Modellierung von Zeiteffekten verwendet werden.

Konsistente Effekte

Ein binärer Indikator kann mehrere Zeiträume abdecken. Dabei wird davon ausgegangen, dass der KPI-Effekt (pro Kopf in einem geografischen Modell) über alle Zeiträume hinweg konsistent ist. Bei einem binären Indikator werden mehrere Zeiträume verwendet, um einen konsistenten Effekt zu schätzen. Dadurch werden die Schätzungen verbessert und die Freiheitsgrade effizient genutzt, sofern die Annahme eines konsistenten Effekts ungefähr zutrifft.

Der Indikator hat keine Auswirkungen auf Zeiträume außerhalb der angegebenen, während sich das Platzieren eines Knotens in einem bestimmten Zeitraum auf die benachbarten Zeiträume bis zum nächsten angrenzenden Knoten auswirkt.

Die Modellierung von Zeiteffekten als konsistent über einen Satz von Zeiträumen hinweg kann für ein nationales Modell sinnvoll sein, weil die Struktur dazu beitragen kann, Schätzungen zu stabilisieren. Bei einem geografischen Modell wird oft die Flexibilität bevorzugt, die sich durch die Verwendung vieler Knoten ergibt.

Geografische Variation

Wenn ein binärer Indikator als Kontrollvariable in einem Modell auf geografischer Ebene verwendet wird, wird davon ausgegangen, dass er einen geografisch abhängigen Effekt hat. Das ist ideal für Ereignisse, bei denen Sie davon ausgehen, dass die Auswirkungen je nach Region unterschiedlich sind, z. B. wenn der Super Bowl in der Gastgeberstadt eine größere Wirkung hat. Im Gegensatz dazu werden mit Knoten Zeiteffekte geschätzt, die nicht geografisch abhängig sind. Mithilfe von Knoten wird eine flexible Spline-Funktion erstellt, um zeitbasierte Muster zu erfassen, die für alle geografischen Einheiten gelten. Sie sind parameterfreundlicher, wenn Sie keine geografisch abhängigen Zeiteffekte erwarten.

Geografische Variation für einen binären Indikator deaktivieren

Es kann sinnvoll sein, einen binären Indikator zu verwenden, der nicht von ortsspezifischen Zeiteffekten beeinflusst wird. Dazu können Sie den Prior für die hierarchische Varianz xi_c auf eine Punktmasse bei „0“ setzen. In diesem Fall sind alle geografiespezifischen Koeffizienten für den binären Indikator identisch. Wenn Sie geografische Effekte für alle Kontrollvariablen deaktivieren möchten, legen Sie den entsprechenden Varianz-Prior auf den deterministischen Wert „0“ fest:

xi_c = tfp.distributions.Deterministic(0)

Wenn Sie den geografischen Effekt nur für eine bestimmte Kontrollvariable deaktivieren möchten, können Sie den scale-Wert des entsprechenden Priors auf „0“ setzen. Wenn Sie beispielsweise vier Kontrollvariablen haben und den ortsabhängigen Effekt für die erste deaktivieren möchte:

xi_c = tfp.distributions.HalfNormal(scale=[0, 5, 5, 5])

Risiko der Multikollinearität

Binäre Indikatoren können ein hohes Risiko für Multikollinearität mit Variablen für die Media-Ausführung bergen. Daher ist es wichtig, sich der Multikollinearität bewusst zu sein und nur binäre Indikatoren einzubeziehen, die tatsächlich Störfaktoren sind.

Periodische Funktionen

Eine weitere Option ist, eine periodische Funktion wie eine Fourierreihe als Kontrollvariable hinzuzufügen. Periodische Funktionen können eine attraktive Alternative zu Knoten sein, insbesondere in nationalen Modellen.

Periodische Funktionen modellieren die Zeiteffekte als glattes und zyklisches Muster für den KPI (im Fall eines geografischen Modells: KPI pro Kopf). Periodische Funktionen sind eine starke parametrische Annahme darüber, wie sich die Zeit auf den KPI auswirkt. Das kann für ein nationales Modell sinnvoll sein, weil die Struktur dazu beitragen kann, eine stabile Schätzung der Saisonalität zu erhalten. Bei einem geografischen Modell wird die Flexibilität, viele Knoten zu verwenden, oft bevorzugt, weil sie kein glattes und zyklisches Muster für den KPI erzwingt.

Praktische Empfehlungen

Die Empfehlungen hängen davon ab, ob es sich um ein geografisches oder ein nationales Modell handelt.

Geografische Modelle

Binäre Indikatoren können in geografischen Modellen verwendet werden, um geografisch abhängige Zeiteffekte zu modellieren. Knoten und binäre Indikatoren können zusammen genutzt werden. Achten Sie jedoch auf die Gesamtzahl der Parameter, die zur Modellierung von Zeiteffekten verwendet werden. Es empfiehlt sich nicht, binäre Indikatoren gemeinsam mit vollständigen Knoten einzusetzen.

  • Nutzen Sie Knoten für Zeiteffekte, die nicht geografisch abhängig sind: Wenn Sie ein zeitliches Muster modellieren möchten, das in allen geografischen Einheiten konsistent ist, bieten Knoten Flexibilität, ohne dass das Risiko einer übermäßigen Parametrisierung besteht.
  • Verwenden Sie für Zeiteffekte, die geografisch abhängig sind, einen binären Indikator: Wenn Sie eine starke Hypothese haben, dass die Auswirkungen eines Ereignisses je nach geografischer Einheit variieren, ist ein binärer Indikator als Kontrollvariable das richtige Tool.

Nationale Modelle

Bei nationalen Modellen ist Parsimonie besonders wichtig. Sie kann durch binäre Indikatoren, periodische Funktionen oder einige gut platzierte Knoten erreicht werden. Diese können zusammen verwendet werden, aber achten Sie besonders auf die Gesamtzahl der Parameter, da Parsimonie bei einem nationalen Modell wichtig ist. Jede dieser Optionen verbessert die Schätzungen und nutzt die Freiheitsgrade effizient, sofern die Annahme ungefähr zutrifft. Im Folgenden werden die Annahmen für die einzelnen Punkte zusammengefasst:

  • Mit periodischen Funktionen werden die Zeiteffekte als glattes und zyklisches Muster für den KPI modelliert.
  • Bei binären Indikatoren werden Zeiteffekte für alle betroffenen Zeiträume als konsistent modelliert.
  • Knoten modellieren Zeiteffekte als abschnittsweisen linearen Trend im Zeitverlauf.