適合済みメリディアン モデルを分析する際に、Analyzer、Visualizer、BudgetOptimizer クラスを使用すると、分析の範囲を特定の地域や期間に絞り込むことができます。これらの引数により、入力データのサブセットに基づいて指標(ROI や増分効果など)を計算したり、可視化を生成したり、予算の最適化を行ったりできます。
地域の範囲を絞り込むには selected_geos 引数を使用します。Analyzer クラスと Visualizer クラスの期間の範囲を絞り込むには、selected_times 引数を使用します。BudgetOptimizer の期間を定義するには、start_date 引数と end_date 引数を使用します(通常は yyyy-mm-dd の文字列形式で指定します)。
デフォルトでは、これらの引数はそれぞれ、すべての地域単位と期間が含まれるように設定されています。一部のメソッドで使用できるブール値のオプションである aggregate_times と aggregate_geos を使用すると、結果をそれぞれ期間と地域でセグメント化するか、選択した期間と地域の集計を行えます。
コード例
このセクションでは、selected_geos と selected_times の使用方法について、いくつかの架空のシナリオで説明します。
シナリオ 1: 特定の期間のサマリー指標を計算する
# 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,
)
シナリオ 2: 2 つの架空の地域で増分効果を計算する
# 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.
)
シナリオ 3: モデル適合度プロットをフィルタする
# 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,
)