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.