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.