Quadratic approximation for PyMC3
Project description
pymc3-quap
The quadratic approximation is a very fast method to approximate the posterior with a multivariate normal.
NOTE: The quadratic approximation only works well if the posterior is uni-modal and roughly symmetrical.
Example
import numpy as np
import pymc3 as pm
import arviz as az
from quap import quap
y = np.array([2642, 3503, 4358]*10)
# Normal with unknown mean and log-variance, with uniform priors
with pm.Model() as m:
logsigma = pm.Uniform("logsigma", -100, 100)
mu = pm.Uniform("mu", -10000, 10000)
yobs = pm.Normal("y", mu=mu, sigma=pm.math.exp(logsigma), observed=y)
idata, posterior = quap([mu, logsigma])
az.plot_posterior(idata)
idata
is an arviz.InferenceData
with samples from the approximate posterior for compatibility with the Arviz ecosystem.
posterior
is the exact approximate posterior scipy.stats.multivariate_normal
True posterior and quadratic approximation for the example above.
Install
pip install pymc3-quap
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pymc3-quap-1.0.2.tar.gz
(3.2 kB
view hashes)
Built Distribution
Close
Hashes for pymc3_quap-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 852b4d2d4d94d5bbbbd640b54848b3e7a3bead36a0216bf66c453ca9a99fe783 |
|
MD5 | 79ecfced7edbc47a1dd4e1c124a0fe16 |
|
BLAKE2b-256 | 3ec5249d8aba331a19a1aa6b028594897fa656b401e8ec9be74dc3395d6df951 |