モデルを実行するときは、モデル仕様を追加してからコマンドを実行し、事前分布と事後分布をサンプリングします。
事後分布からのサンプリングには、マルコフ連鎖モンテカルロ(MCMC)アルゴリズムを使用します。メリディアンでは、ステップサイズとカーネルの適応を伴う No-U-Turn サンプリング法を使用します。
モデルを実行するには:
モデル仕様を追加します。
例:
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='coefficient', 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) mmm.sample_prior(500) mmm.sample_posterior(n_chains=7, n_adapt=1000, n_burnin=500, n_keep=1000)パラメータ 説明 n_chains同時にサンプリングするチェーンの数。メモリ消費量を削減するには、MCMC サンプリングの順次呼び出しを許可する整数のリストを使用します。リストが指定されている場合、シーケンス内の各要素は windowed_adaptive_nuts呼び出しのn_chains引数に対応します。n_adaptステップサイズとカーネルを適応させている間の、チェーンあたりの MCMC 抽出数。これらの抽出は常に除外されます。 n_burninステップサイズとカーネルが確定した後に除外される、チェーンあたりの追加の MCMC 抽出数。適応が完了した後にすべてのチェーンが定常分布に達するようにするために、こうした追加の抽出が必要となる場合があります。ただし実際には、適応中にチェーンが定常分布に達し、 n_burnin=0で十分だったということはよくあります。n_keepモデルの分析と結果のために保持する、チェーンあたりの MCMC 抽出数。 (省略可)事後分布を間引いて、イテレーションを高速化します。
反復ワークフロー(予備のモデル結果レポートの生成や、複数の予算最適化シナリオの評価など)中にダウンストリーム タスクを高速化するには、
posterior_thinning()を使用して事後分布の抽出をダウンサンプリングします。これにより、系統的サンプリングを使用して、各 MCMC チェーンにわたる事後分布の抽出結果からチェーンを保持するサブセットが選択され、自己相関が最小限に抑えられます。# Recommended: 15% sampling rate balances fast iteration with # near-approximate inference mmm.posterior_thinning(sampling_rate=0.15, preserve_original=True) # Alternatively, specify the exact number of draws to keep per chain # mmm.posterior_thinning(n_draws=150, preserve_original=True)preserve_original=Trueが設定されている場合は、最終報告前の任意の時点で完全な事後分布を復元できます。mmm.restore_full_posterior()パラメータ 説明 sampling_rate(0, 1]でチェーンごとに保持する抽出の割合。推奨: 探索ワークフローでは、0.15(15%)。sampling_rateまたはn_drawsのいずれか 1 つのみを指定する必要があります。n_draws[1, original_n_draws]でチェーンごとに保持する抽出回数。sampling_rateまたはn_drawsのいずれか 1 つのみを指定する必要があります。method抽出の選択方法。 ThinningMethod.SYSTEMATIC(デフォルト)をサポートします。seed再現可能な抽出選択のためのオプションの整数乱数シード。 preserve_originalブール値フラグ(デフォルトは True)。Trueの場合、restore_full_posterior()が復元できるように、完全な事後分布のコピーを保存します。
次にモデリング診断を行い、収束を評価し、分布を確認して、モデルの適合度を評価します。