Current default initval strategy


I am currently trying to understand what the default “initval” strategy is. In the pymc.model class it seems None is stored in self.rvs_to_initial_values for each RV that was not passed a initval.
I know, that the NUTS initialization can place a jitter on the initval depending on the init method here. But prior to that? Is it always the mean or the mode or a sample of the prior?

Thank you in advance!

By default it’s a moment (usually the mean, but could be anything that has a finite logp).
It should work the same if you specified initival="moment". The only other option besides a user constant is initval="prior" which takes a random draw from the prior.

You can see what it looks like by calling model.initial_point()

Jittering is applied over this initial point.

1 Like

Thanks for the quick answer. By “usually” you mean it depends on the distribution at hand?


I understand. Thank you !