Hi all,
I am trying to run a very simple test to model some synthetically generated data using a Pareto likelihood and I am running into a behaviour that I do not completely understand or recognize. I have seen posts from other people having issues with this distribution in the past and this maybe is related but I can’t fully tell.
The model is super simple in part because I’m trying to decipher what is going wrong:
with pm.Model() as m_test_pareto:
a = pm.Uniform("a", lower=10, upper=1000)
m = pm.Uniform("m", lower=0, upper=2)
del_times = pm.Pareto(
"del_times",
alpha=a,
m=m,
observed=del_times_sim,
)
idata = pm.sample_prior_predictive(2000)
idata.extend(pm.sample())
Upon inspection the sampled priors behave exactly as expected. However the sampling immediately fail because the sampler receives negative values for the parameters:
SamplingError: Initial evaluation of model at starting point failed!
Starting values:
{'a_interval__': array(-2.55439488), 'm_interval__': array(0.44076056)}
Initial evaluation results:
{'a': -2.7, 'm': -1.43, 'del_times': -inf}
It appears that the parameters are transformed in some way before being passed to the distribution? Note that I have the same problem, as expected, even if I assign a fixed positive values for alpha
and m
in the likelihood.
The same model runs perfectly fine if I substitute the Pareto distribution with a Gamma distribution, which also requires positive parameters.
Is this an expected behaviour and I am missing something?
Thanks for your help!