diff --git a/pymc3/distributions/continuous.py b/pymc3/distributions/continuous.py index d073ceef49..8ec46c73d6 100644 --- a/pymc3/distributions/continuous.py +++ b/pymc3/distributions/continuous.py @@ -4223,6 +4223,28 @@ class Interpolated(BoundedContinuous): Both parameters ``x_points`` and values ``pdf_points`` are not variables, but plain array-like objects, so they are constant and cannot be sampled. + .. plot:: + + import matplotlib.pyplot as plt + import numpy as np + import pymc3 as pm + import arviz as az + from scipy.stats import gamma + plt.style.use('arviz-darkgrid') + rv = gamma(1.99) + x = np.linspace(rv.ppf(0.01),rv.ppf(0.99), 1000) + points = np.linspace(x[0], x[-1], 50) + pdf = rv.pdf(points) + interpolated = pm.Interpolated.dist(points, pdf) + fig, ax = plt.subplots(1, 1) + ax.plot(x, rv.pdf(x), 'C0', linestyle = '--', label='Original Gamma pdf',alpha=0.8,lw=2) + ax.plot(points, pdf, color='black', marker='o', label='Lattice Points',alpha=0.5,linestyle='') + ax.plot(x, np.exp(interpolated.logp(x).eval()),'C1',label='Interpolated pdf',alpha=0.8,lw=3) + r = interpolated.random(size=1000) + ax.hist(r, density=True, alpha=0.4,align ='mid',color='grey') + ax.legend(loc='best', frameon=False) + plt.show() + ======== =========================================== Support :math:`x \in [x\_points[0], x\_points[-1]]` ======== ===========================================