v3.4.1 Final
There was no 3.4 release due to a naming issue on PyPI.
New features
- Add
logit_p
keyword topm.Bernoulli
, so that users can specify the logit of the success probability. This is faster and more stable than usingp=tt.nnet.sigmoid(logit_p)
. - Add
random
keyword topm.DensityDist
thus enabling users to pass custom random method which in turn makes sampling from aDensityDist
possible. - Effective sample size computation is updated. The estimation uses Geyer's initial positive sequence, which no longer truncates the autocorrelation series inaccurately.
pm.diagnostics.effective_n
now can reports N_eff>N. - Added
KroneckerNormal
distribution and a correspondingMarginalKron
Gaussian Process implementation for efficient inference, along with
lower-level functions such ascartesian
andkronecker
products. - Added
Coregion
covariance function. - Add new 'pairplot' function, for plotting scatter or hexbin matrices of sampled parameters.
Optionally it can plot divergences. - Plots of discrete distributions in the docstrings
- Add logitnormal distribution
- Densityplot: add support for discrete variables
- Fix the Binomial likelihood in
.glm.families.Binomial
, with the flexibility of specifying then
. - Add
offset
kwarg to.glm
. - Changed the
compare
function to accept a dictionary of model-trace pairs instead of two separate lists of models and traces. - add test and support for creating multivariate mixture and mixture of mixtures
distribution.draw_values
, now is also able to draw values from conditionally dependent RVs, such as autotransformed RVs (Refer to PR #2902).
Fixes
VonMises
does not overflow for large values of kappa. i0 and i1 have been removed and we now use log_i0 to compute the logp.- The bandwidth for KDE plots is computed using a modified version of Scott's rule. The new version uses entropy instead of standard deviation. This works better for multimodal distributions. Functions using KDE plots has a new argument
bw
controlling the bandwidth. - fix PyMC3 variable is not replaced if provided in more_replacements (#2890)
- Fix for issue #2900. For many situations, named node-inputs do not have a
random
method, while some intermediate node may have it. This meant that if the named node-input at the leaf of the graph did not have a fixed value,theano
would try to compile it and fail to find inputs, raising atheano.gof.fg.MissingInputError
. This was fixed by going through the theano variable's owner inputs graph, trying to get intermediate named-nodes values if the leafs had failed. - In
distribution.draw_values
, some named nodes could betheano.tensor.TensorConstant
s ortheano.tensor.sharedvar.SharedVariable
s. Nevertheless, indistribution._draw_value
, these would be passed todistribution._compile_theano_function
as if they weretheano.tensor.TensorVariable
s. This could lead to the following exceptionsTypeError: ('Constants not allowed in param list', ...)
orTypeError: Cannot use a shared variable (...)
. The fix was to not addtheano.tensor.TensorConstant
ortheano.tensor.sharedvar.SharedVariable
named nodes into thegivens
dict that could be used indistribution._compile_theano_function
. - Exponential support changed to include zero values.
Deprecations
- DIC and BPIC calculations have been removed
- df_summary have been removed, use summary instead
njobs
andnchains
kwarg are deprecated in favor ofcores
andchains
forsample
lag
kwarg inpm.stats.autocorr
andpm.stats.autocov
is deprecated.