Definir distribuições a priori personalizadas com base em uma combinação de famílias de distribuição

O Meridian oferece um objeto de distribuição personalizada (prior_distribution.IndependentMultivariateDistribution) que permite combinar distribuições de várias famílias em uma a priori. Por exemplo, você pode usar distribuições log-normais para definir uma distribuição a priori de ROI para três canais de mídia e uma distribuição a priori HalfNormal para um quarto canal:

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

Talvez você note tempos de execução um pouco mais longos porque o IndependentMultivariateDistribution divide e delega tensores internamente para as distribuições secundárias. Antes de usar IndependentMultivariateDistribution, avalie se variar os parâmetros entre canais, mantendo-os dentro da mesma família de distribuição, seria útil ou se seria melhor usar uma família de distribuição diferente.