Benutzerdefinierte Priors aus einer Kombination von Verteilungsfamilien festlegen

Meridian bietet ein benutzerdefiniertes Verteilungsobjekt (prior_distribution.IndependentMultivariateDistribution), mit dem Sie Verteilungen aus mehreren Familien in einer Prior-Verteilung kombinieren können. Sie könnten beispielsweise LogNormal-Verteilungen verwenden, um einen ROI-Prior für drei Media-Channels zu definieren, und einen HalfNormal-Prior für einen vierten:

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,
)

Die Laufzeiten fallen eventuell etwas länger aus, da IndependentMultivariateDistribution die Tensoren intern aufteilt und an die untergeordneten Verteilungen weiterleitet. Bevor Sie IndependentMultivariateDistribution verwenden, sollten Sie überlegen, ob es sinnvoll ist, die Parameter zwischen den Channels zu variieren, aber innerhalb derselben Verteilungsfamilie zu bleiben, oder ob es besser ist, eine andere Verteilungsfamilie zu verwenden.