Meridian Demo
simplified demo
-
basic functions & usage
-
skips EDA
Step 0: Install¶
Step 1: Load the data¶
Read data ⟶ DataFrameInputDataBuilder instance ⟶ InputData object
DataFrameInputDataBuilder:
-
is: a class
-
purpose: input df ⟶ output
InputData
Collect and organize your data
-
DV
-
IV
-
Media (impressions, clicks, spend)
-
Organic media
-
Non-media treatments
-
Control
-
Seasonality (automatic)
-
Step 2: Configure the model¶
How should Meridian interpret our data?
apply priors ⟶ initialize Meridian class ⟶ obtain samples
Initialize the Meridian class:
-
input data from step 1
-
model specs with priors
Get samples of model parameters
-
prior distributions
-
posterior distributions
prior = prior_distribution.PriorDistribution(
roi_m=tfp.distributions.LogNormal(roi_mu, roi_sigma, name=constants.ROI_M)
)
model_spec = spec.ModelSpec(
prior=prior_distribution.PriorDistribution(),
media_effects_dist='log_normal',
hill_before_adstock=False,
max_lag=8,
unique_sigma_for_each_geo=False,
media_prior_type='roi',
roi_calibration_period=None,
rf_prior_type='roi',
rf_roi_calibration_period=None,
organic_media_prior_type='contribution',
organic_rf_prior_type='contribution',
non_media_treatments_prior_type='contribution',
knots=None,
baseline_geo=None,
holdout_id=None,
control_population_scaling_id=None,
adstock_decay_spec='geometric',
enable_aks=False,
)
mmm = model.Meridian(input_data=data, model_spec=model_spec)
Step 3: Run post-modeling quality checks¶
diagnose issues related to model..
-
convergence
-
specification
-
plausibility
Step 4: Run model diagnostics¶
continues from step 3, using the methods from the visualizer module.
-
convergence: r-hat statistics.
-
R-hat close to 1.0 ⟶ convergence
-
R-hat < 1.2 ⟶ approximate convergence
-
-
model's fit: compare expected v actual
Step 5: Generate model results & two-page output¶
Step 6: Run budget optimization & generate an optimization report¶
provide budget ⟶ finds optimal channel allocation
- instantiate
BudgetOptimizerclass ⟶ run theoptimize()method