Filtrer les résultats du modèle avec selected_geos et selected_times

Lorsque vous analysez votre modèle Meridian ajusté, les classes Analyzer, Visualizer et BudgetOptimizer vous permettent de limiter l'analyse à des régions géographiques ou des périodes spécifiques. Ces arguments vous permettent de calculer des métriques (comme le ROI ou le résultat incrémental), de générer des visualisations et d'optimiser le budget en fonction de sous-ensembles de vos données d'entrée.

Utilisez l'argument selected_geos pour définir des régions géographiques. Utilisez l'argument selected_times pour définir des périodes pour les classes Analyzer et Visualizer. Afin de définir la période pour BudgetOptimizer, utilisez les arguments start_date et end_date (généralement fournis dans une chaîne au format yyyy-mm-dd).

Par défaut, ces arguments sont configurés pour inclure toutes les unités géographiques et toutes les périodes, respectivement. Les options booléennes aggregate_times et aggregate_geos disponibles dans certaines méthodes vous permettent de segmenter les résultats respectivement par période et par région géographique, ou d'agréger les périodes et les régions géographiques sélectionnées.

Exemple de code

Cette section présente plusieurs scénarios hypothétiques d'utilisation de selected_geos et selected_times.

Scénario 1 : Calculer des métriques récapitulatives sur une période spécifique

# Scenario 1: Calculate summary metrics for Q4 2024 only, aggregated across geos.

from meridian.analysis import analyzer
from meridian.model import model

mmm = model.Meridian(...)
mmm.sample_posterior(...)
analyzer_instance = analyzer.Analyzer(mmm)

selected_q4_times = [
    '2024-10-01',
    '2024-10-08',
    '2024-10-15',
    '2024-10-22',
    '2024-10-29',
    '2024-11-05',
    '2024-11-12',
    '2024-11-19',
    '2024-11-26',
    '2024-12-03',
    '2024-12-10',
    '2024-12-17',
    '2024-12-24',
    '2024-12-31',
]

q4_national_summary = analyzer_instance.summary_metrics(
    selected_times=selected_q4_times,
)

Scénario 2 : Calculer le résultat incrémental pour deux zones géographiques hypothétiques

# Scenario 2: Calculate incremental outcome for 2 hypothetical geos, 'Geo_A', 'Geo_B' broken down weekly.

from meridian.analysis import analyzer
from meridian.model import model

mmm = model.Meridian(...)
mmm.sample_posterior(...)
analyzer_instance = analyzer.Analyzer(mmm)

# Note: Incremental Outcome can be aggregated by time or shown weekly.
geo_a_weekly_impact = analyzer_instance.incremental_outcome(
    selected_geos=['Geo_A', 'Geo_B'],
    aggregate_geos=False,  # Keep the geo dimension separate.
    aggregate_times=False,  # Show incremental outcome week-by-week.
)

Scénario 3 : Filtrer le graphique d'ajustement du modèle

# Scenario 3: Filtering Model Fit Plot
# You can restrict the ModelFit.plot_model_fit() visualization to a specific
# region and ensure results are shown at that detailed geo level.
# This example assumes weekly aggregation.

from meridian.model import model
from meridian.analysis import visualizer

mmm = model.Meridian(...)
mmm.sample_posterior(...)
# Assume 'mmm' is fitted
model_fit = visualizer.ModelFit(mmm)

model_fit_chart = model_fit.plot_model_fit(
    selected_geos=['Geo_A'],
    # Plotting January 2025
    selected_times=[
        '2025-01-01',
        '2025-01-08',
        '2025-01-15',
        '2025-01-22',
        '2025-01-29',
    ],
    # Display Geo_A's plot separately (relevant for multi-geo models)
    show_geo_level=True,
    include_baseline=True,
)