Filtra los resultados del modelo con selected_geos y selected_times

Cuando analizas tu modelo ajustado de Meridian, las clases Analyzer, Visualizer y BudgetOptimizer te permiten limitar el análisis a regiones geográficas o períodos específicos. Estos argumentos te permiten calcular métricas (como el ROI o el resultado incremental), generar visualizaciones y optimizar el presupuesto en función de subconjuntos de tus datos de entrada.

Si deseas establecer el alcance para ubicaciones geográficas, usa el argumento selected_geos; en cambio, si quieres establecerlo para períodos con las clases Analyzer y Visualizer, usa el argumento selected_times. Para definir el intervalo de BudgetOptimizer, usa los argumentos start_date y end_date (en general, se proporcionan en el formato de cadena yyyy-mm-dd).

De forma predeterminada, esos argumentos están configurados para incluir todas las unidades geográficas y todos los períodos, respectivamente. Las opciones booleanas aggregate_times y aggregate_geos que se encuentran disponibles en algunos métodos te permiten segmentar los resultados por período y por ubicación geográfica, respectivamente, o bien agregar los períodos y las ubicaciones geográficas que selecciones.

Código de ejemplo

En esta sección, se presentan varias situaciones hipotéticas que ilustran cómo usar selected_geos y selected_times.

Situación 1: Cálculo de las métricas de resumen en un período específico

# 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,
)

Situación 2: Cálculo del resultado incremental para 2 ubicaciones geográficas hipotéticas

# 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.
)

Situación 3: Filtrado del gráfico de ajuste del modelo

# 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,
)