Définir des a priori personnalisés à partir d'une combinaison de familles de distributions

Meridian propose un objet de distribution personnalisé (prior_distribution.IndependentMultivariateDistribution) qui vous permet de combiner des distributions de plusieurs familles en une seule distribution a priori. Par exemple, vous pouvez utiliser des distributions LogNormal afin de définir un a priori de ROI pour trois canaux média et un a priori HalfNormal pour un quatrième :

import tensorflow_probability as tfp
from meridian.model import prior_distribution

distributions = [
  tfp.distributions.LogNormal([0.2, 0.2, 0.2], [0.9, 0.9, 0.9]),
  tfp.distributions.HalfNormal(5),
]

roi_m_prior = prior_distribution.IndependentMultivariateDistribution(distributions)
prior = PriorDistribution(roi_m=roi_m_prior)
model_spec = ModelSpec(prior=prior)

meridian_model = Meridian(
  input_data = # an `InputData` object
  model_spec=model_spec,
)

Vous remarquerez peut-être des durées d'exécution légèrement plus longues, car IndependentMultivariateDistribution divise et délègue les tenseurs en arrière-plan à ses distributions enfants. Avant d'utiliser IndependentMultivariateDistribution, déterminez s'il serait utile de faire varier les paramètres selon les canaux tout en restant dans la même famille de distribution, ou s'il est préférable d'utiliser une autre famille de distribution.