meridian.model.model.Meridian

Enthält die Hauptfunktionen für die Anpassung des MMM von Meridian.

input_data Ein InputData-Objekt mit den Eingabedaten für das Modell.
model_spec Ein ModelSpec-Objekt mit der Modellspezifikation.
inference_data Ein veränderliches arviz.InferenceData-Objekt mit den Daten, die aus der Anpassung des Modells resultieren.
n_geos Anzahl der geografischen Einheiten in den Daten.
n_media_channels Anzahl der Media-Channels in den Daten.
n_rf_channels Anzahl der Channels für Reichweite und Häufigkeit in den Daten.
n_organic_media_channels Anzahl der organischen Media-Channels in den Daten.
n_organic_rf_channels Anzahl der Channels für organische Reichweite und Häufigkeit in den Daten.
n_controls Anzahl der Kontrollvariablen in den Daten.
n_non_media_channels Anzahl der nicht mediabezogenen Testgruppen-Channels in den Daten.
n_times Anzahl der Zeiträume in den KPI- oder Ausgabendaten.
n_media_times Anzahl der Zeiträume in den Media-Daten.
is_national Ein boolescher Wert, der angibt, ob die Daten national (eine einzelne geografische Einheit) oder nicht (mehrere geografische Einheiten) sind.
knot_info KnotInfo, die aus Eingabedaten und Modellspezifikation abgeleitet wurde.
kpi Ein Tensor, der aus input_data.kpi erstellt wurde.
revenue_per_kpi Ein Tensor, der aus input_data.revenue_per_kpi erstellt wurde. Wenn input_data.revenue_per_kpi „None“ ist, ist das auch „None“.
controls Ein Tensor, der aus input_data.controls erstellt wurde.
non_media_treatments Ein Tensor, der aus input_data.non_media_treatments erstellt wurde.
population Ein Tensor, der aus input_data.population erstellt wurde.
media_tensors Eine Sammlung von Media-Tensoren, die aus input_data abgeleitet wurden.
rf_tensors Eine Sammlung von Media-Tensoren für Reichweite und Häufigkeit.
organic_media_tensors Eine Sammlung von organischen Media-Tensoren.
organic_rf_tensors Eine Sammlung von organischen Media-Tensoren für Reichweite und Häufigkeit.
total_spend Ein Tensor mit den Gesamtausgaben, einschließlich media_tensors.media_spend und rf_tensors.rf_spend.
controls_transformer Ein ControlsTransformer, um Kontrollgruppen-Tensoren mithilfe der Kontrollgruppendaten des Modells zu skalieren.
non_media_transformer Ein CenteringAndScalingTransformer, um nicht mediabezogene Testgruppen-Tensoren mit den entsprechenden Daten des Modells zu skalieren.
kpi_transformer Ein KpiTransformer, um KPI-Tensoren mithilfe der KPI-Daten des Modells zu skalieren.
controls_scaled Der Kontrollgruppen-Tensor, normalisiert nach Bevölkerung und Medianwert.
non_media_treatments_scaled Der nicht mediabezogene Testgruppen-Tensor, normalisiert nach Bevölkerung und Medianwert.
kpi_scaled Der KPI-Tensor, normalisiert nach Bevölkerung und Medianwert.
media_effects_dist Ein String, mit dem die Verteilung der zufälligen Media-Effekte über verschiedene geografische Einheiten hinweg angegeben wird.
unique_sigma_for_each_geo Ein boolescher Wert, der angibt, ob für jede geografische Einheit eine eigene Residualvarianz verwendet werden soll.
prior_broadcast Ein PriorDistribution-Objekt mit kompatiblen Verteilungen.
baseline_geo_idx Der Index der geografischen Baseline-Einheit.
holdout_id Ein Tensor mit der Holdout-ID, falls vorhanden.
posterior_sampler_callable Ein PosteriorMCMCSampler-Callable, das mit diesem Modell verknüpft ist.
prior_sampler_callable Ein PriorDistributionSampler-Callable, das mit diesem Modell verknüpft ist.

Methoden

adstock_hill_media

Quelle ansehen

Transformiert Medien mit Adstock- und Hill-Funktionen in der gewünschten Reihenfolge.

Argumente
media Tensor mit Dimensionen (n_geos, n_media_times, n_media_channels), der nicht negative Werte für die Media-Ausführung enthält. In der Regel sind das Impressionen, es kann aber auch ein beliebiger anderer Messwert sein, z. B. media_spend. Für bezahlte Suchanzeigen werden häufig Klicks verwendet.
alpha Gleichverteilung für Adstock- und Hill-Berechnungen.
ec Verschobene halbnormale Verteilung für Adstock- und Hill-Berechnungen.
slope Deterministische Verteilung für Adstock- und Hill-Berechnungen.
n_times_output Anzahl der Zeiträume, die ausgegeben werden sollen. Dieses Argument ist optional, wenn die Anzahl der Zeiträume in media gleich self.n_media_times ist. In diesem Fall ist n_times_output standardmäßig self.n_times.

Ausgabe
Tensor mit Dimensionen [..., n_geos, n_times, n_media_channels] für Adstock- und Hill-transformierte Media.

adstock_hill_rf

Quelle ansehen

Transformiert Reichweite und Häufigkeit mithilfe der Hill- und Adstock-Funktionen.

Argumente
reach Tensor mit Dimensionen (n_geos, n_media_times, n_rf_channels), der nicht negative Media-Werte für die Reichweite enthält.
frequency Tensor mit Dimensionen (n_geos, n_media_times, n_rf_channels), der nicht negative Media-Werte für die Häufigkeit enthält.
alpha Gleichverteilung für Adstock- und Hill-Berechnungen.
ec Verschobene halbnormale Verteilung für Adstock- und Hill-Berechnungen.
slope Deterministische Verteilung für Adstock- und Hill-Berechnungen.
n_times_output Anzahl der Zeiträume, die ausgegeben werden sollen. Dieses Argument ist optional, wenn die Anzahl der Zeiträume in reach gleich self.n_media_times ist. In diesem Fall ist n_times_output standardmäßig self.n_times.

Ausgabe
Tensor mit Dimensionen [..., n_geos, n_times, n_rf_channels] für Adstock- und Hill-transformierte Reichweite und Häufigkeit.

create_inference_data_coords

Quelle ansehen

Erstellt Datenkoordinaten für Inferenzdaten.

create_inference_data_dims

Quelle ansehen

expand_selected_time_dims

Quelle ansehen

Validiert und gibt Zeitdimensionswerte basierend auf den ausgewählten Zeiträumen zurück.

Wenn sowohl start_date als auch end_date auf „None“ gesetzt sind, wird „None“ zurückgegeben. Wenn angegeben, werden start_date sowie end_date berücksichtigt und müssen in den Zeitkoordinaten der Eingabedaten vorhanden sein.

Argumente
start_date Startdatum des ausgewählten Zeitraums. Wenn „None“ festgelegt ist, wird der früheste Zeitdimensionswert in den Eingabedaten verwendet.
end_date Enddatum des ausgewählten Zeitraums. Wenn „None“ festgelegt ist, wird der letzte Zeitdimensionswert in den Eingabedaten verwendet.

Ausgabe
Eine Liste von Zeitdimensionswerten (als Meridian-formatierte Objekte) in den Eingabedaten im ausgewählten Zeitraum. Wenn für beide Argumente „None“ festgelegt ist oder start_date und end_date den gesamten Zeitraum in den Eingabedaten abdecken, wird „None“ übergeben.

Löst aus
„ValueError“, wenn start_date oder end_date nicht in den Zeitdimensionen der Eingabedaten enthalten ist.

populate_cached_properties

Quelle ansehen

Aktiviert sofort alle Eigenschaften im Cache.

Das ist nützlich, um ein tf.function-Berechnungsdiagramm mit diesem Meridian-Objekt als Teil einer erfassten Closure zu erstellen. Im Berechnungsdiagramm sind interne Zustandsänderungen problematisch. Daher friert die Methode die Zustände des Objekts ein, bevor das Berechnungsdiagramm erstellt wird.

sample_posterior

Quelle ansehen

Führt eine Markow-Chain-Monte-Carlo-Stichprobenerhebung (MCMC) von Posterior-Verteilungen aus.

Weitere Informationen zu den Argumenten finden Sie unter windowed_adaptive_nuts.

Die erstellten Samples werden in der Arviz-inference_data-Property dieses Modells zusammengeführt.

Argumente
n_chains Anzahl der MCMC-Ketten. Bei einer Sequenz von Ganzzahlen wird windowed_adaptive_nuts einmal für jedes Element aufgerufen. Das n_chains-Argument jedes windowed_adaptive_nuts-Aufrufs entspricht dem jeweiligen Ganzzahlelement. Mit einer Liste von Ganzzahlen lassen sich Ketten eines windowed_adaptive_nuts-Aufrufs in mehrere Aufrufe mit weniger Ketten pro Aufruf aufteilen. Dadurch kann die Arbeitsspeichernutzung reduziert werden. Eventuell sind hierfür mehr Anpassungsschritten für die Konvergenz erforderlich, da die Optimierung über weniger Ketten pro Stichprobenaufruf erfolgt.
n_adapt Anzahl der Anpassungsziehungen pro Kette.
n_burnin Anzahl der Burn-in-Ziehungen pro Kette. Die Burn-in-Ziehungen erfolgen nach den Anpassungsziehungen und vor den behaltenen Ziehungen.
n_keep Ganzzahlige Anzahl der Ziehungen pro Kette, die für die Inferenz beibehalten werden sollen.
current_state Optionale Struktur von Tensoren, mit der die Stichprobenerhebung initialisiert werden soll. Verwenden dieselbe Form und Struktur wie model.experimental_pin(**pins).sample(n_chains).
init_step_size Optionale Ganzzahl, die bestimmt, wo die Schrittweite für den Leapfrog-Integrator initialisiert wird. Die Struktur muss mit current_state kompatibel sein. Wenn das beispielsweise der Anfangsstatus ist: { 'a': tf.zeros(n_chains), 'b': tf.zeros([n_chains, n_features]), }, dann funktionieren entweder 1., {'a': 1., 'b': 1.} oder {'a': tf.ones(n_chains), 'b': tf.ones([n_chains, n_features])}. Standardmäßig ist die Dimension der Logdichte auf die ¼-Potenz gesetzt.
dual_averaging_kwargs Optionale Keyword-Argumente in Form eines Dictionarys, die an tfp.mcmc.DualAveragingStepSizeAdaptation übergeben werden sollen. Der Standardwert für target_accept_prob ist auf 0.85 gesetzt, die Akzeptanzwahrscheinlichkeiten über die Ketten hinweg werden mit dem harmonischen Mittelwert reduziert und andernfalls werden die Standardwerte der Klasse verwendet.
max_tree_depth Maximale Tiefe der Baumstruktur, die implizit durch NUTS erstellt wird. Die maximale Anzahl der Leapfrog-Schritte ist durch 2**max_tree_depth begrenzt, z. B. die Anzahl der Knoten in einem binären Baum mit einer Tiefe von max_tree_depth Knoten. Bei der Standardeinstellung von 10 sind bis zu 1.024 Leapfrog-Schritte möglich.
max_energy_diff Skalarer Grenzwert für Energiedifferenzen bei jedem Leapfrog-Schritt. Divergenzproben werden als Leapfrog-Schritte definiert, die diesen Grenzwert überschreiten. Der Standardwert ist 1000.
unrolled_leapfrog_steps Die Anzahl der Leapfrog-Schritte, die pro Baumexpansionsschritt ausgeführt werden sollen. Wendet einen direkten linearen Multiplikator auf die maximale Länge der Kurve (Trajektorie) an, die durch max_tree_depth impliziert ist. Der Standardwert ist 1.
parallel_iterations Anzahl der Iterationen, die parallel ausgeführt werden dürfen. Muss eine positive Ganzzahl sein. Weitere Informationen finden Sie unter tf.while_loop.
seed Wird verwendet, um den Seed für reproduzierbare Ergebnisse festzulegen. Weitere Informationen finden Sie unter PRNGS and seeds.
**pins Sie werden verwendet, um die bereitgestellte gemeinsame Verteilung zu steuern, und direkt an joint_dist.experimental_pin(**pins) übergeben.

Löst
MCMCOOMError aus, wenn das Modell nicht genügend Arbeitsspeicher hat. Versuchen Sie, n_keep zu verringern, oder übergeben Sie eine Liste von Ganzzahlen als n_chains, um Ketten nacheinander auszuführen. Weitere Informationen finden Sie unter „ResourceExhaustedError“ beim Ausführen von „Meridian.sample_posterior“.

sample_prior

Quelle ansehen

Es werden Stichproben aus den Prior-Verteilungen gezogen.

Die erstellten Samples werden in der Arviz-inference_data-Property dieses Modells zusammengeführt.

Argumente
n_draws Anzahl der Stichproben, die aus der Prior-Verteilung gezogen werden.
seed Wird verwendet, um den Seed für reproduzierbare Ergebnisse festzulegen. Weitere Informationen finden Sie unter PRNGS and seeds.