Exécuter le modèle

Lorsque vous exécutez le modèle, vous ajoutez la spécification de votre modèle, puis exécutez les commandes pour échantillonner la distribution a priori et la distribution a posteriori.

Les algorithmes de la méthode de Monte-Carlo par chaînes de Markov (MCMC, Markov Chain Monte Carlo) sont utilisés pour échantillonner à partir de la distribution a posteriori. Meridian utilise la méthode d'échantillonnage No-U-Turn avec une taille de pas et une adaptation du kernel.

Pour exécuter le modèle :

  1. Ajoutez les caractéristiques de votre modèle.

    Exemple :

    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. Exécutez les commandes suivantes pour échantillonner à partir de la distribution a priori et a posteriori. Configurez les paramètres nécessaires :

    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)
    
    Paramètre Description
    n_chains Nombre de chaînes à échantillonner en parallèle. Pour réduire la consommation de mémoire, vous pouvez utiliser une liste d'entiers afin de permettre des appels d'échantillonnage MCMC séquentiels. Pour une liste donnée, chaque élément de la séquence correspond à l'argument n_chains d'un appel à windowed_adaptive_nuts.
    n_adapt Nombre de tirages MCMC par chaîne, au cours desquels la taille de pas et le kernel sont adaptés. Ces tirages sont toujours exclus.
    n_burnin Nombre supplémentaire de tirages MCMC, par chaîne, à exclure une fois la taille de pas et le kernel corrigés. Ces tirages supplémentaires peuvent être nécessaires pour s'assurer que toutes les chaînes atteignent la distribution stationnaire une fois l'adaptation terminée. Toutefois, en pratique, nous constatons souvent que les chaînes atteignent la distribution stationnaire pendant l'adaptation et que n_burnin=0 est suffisant.
    n_keep Nombre de tirages MCMC, par chaîne, à conserver pour l'analyse et les résultats du modèle.

Exécutez ensuite des diagnostics de modélisation pour déterminer la convergence, vérifier les distributions et évaluer l'ajustement du modèle.