モデルを実行する

モデルを実行するときは、モデル仕様を追加してからコマンドを実行し、事前分布と事後分布をサンプリングします。

事後分布からのサンプリングには、マルコフ連鎖モンテカルロ(MCMC)アルゴリズムを使用します。Meridian では、ステップサイズとカーネルの適応を伴う No-U-Turn サンプリング法を使用します。

モデルを実行するには:

  1. モデル仕様を追加します。

    例:

    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,
    )
    
  2. 次のコマンドを実行して、事前分布と事後分布からサンプリングします。必要に応じてパラメータを設定します。

    meridian = model.Meridian(input_data=data, model_spec=model_spec)
    meridian.sample_prior(500)
    meridian.sample_posterior(n_chains=7, n_adapt=500, 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 抽出数。

次にモデリング診断を行い、収束を評価し、分布を確認して、モデルの適合度を評価します