Ao analisar o modelo ajustado do Meridian, as classes Analyzer, Visualizer e BudgetOptimizer permitem definir o escopo da análise para regiões geográficas ou períodos específicos. Com esses argumentos, você pode calcular métricas (como ROI ou resultado incremental), gerar visualizações e otimizar o orçamento com base em subconjuntos dos seus dados de entrada.
Use o argumento selected_geos para definir o escopo das regiões geográficas. Utilize o argumento selected_times para definir o escopo dos períodos das classes Analyzer e Visualizer. Para especificar o período de BudgetOptimizer, use os argumentos start_date e end_date (normalmente fornecidos no formato de string yyyy-mm-dd).
Por padrão, eles incluem todas as unidades geográficas e períodos, respectivamente. As opções booleanas aggregate_times e aggregate_geos disponíveis em alguns métodos permitem segmentar os resultados por período e região, respectivamente, ou agregar os períodos e regiões que foram selecionados.
Exemplo de código
Nesta seção, apresentamos vários cenários hipotéticos de como usar selected_geos e selected_times.
Cenário 1: calcular métricas de resumo em um 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,
)
Cenário 2: calcular o resultado incremental de duas regiões 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.
)
Cenário 3: filtrar a plotagem de ajuste do 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,
)