Cómo establecer distribuciones a priori personalizadas a partir de una combinación de familias de distribuciones

Meridian ofrece un objeto de distribución personalizado (prior_distribution.IndependentMultivariateDistribution) que te permite combinar distribuciones de varias familias en una sola distribución a priori. Por ejemplo, es posible que desees usar distribuciones LogNormal para definir una distribución a priori del ROI para tres canales de medios y una distribución a priori HalfNormal para un cuarto:

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

Es posible que observes tiempos de ejecución un poco más extensos porque IndependentMultivariateDistribution divide y delega tensores de forma interna a sus distribuciones secundarias. Antes de usar IndependentMultivariateDistribution, considera si sería útil variar los parámetros entre los canales, pero dentro de la misma familia de distribución, o si es mejor usar una familia de distribución diferente.