import pymc3 as pm
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
palette = 'muted'
sns.set_palette(palette); sns.set_color_codes(palette)
np.random.seed(123)
n_experiments = 4
theta_real = 0.35 # unkwon value in a real experiment
data = stats.bernoulli.rvs(p=theta_real, size=n_experiments)
with pm.Model() as our_first_model:
# a priori
theta = pm.Beta('theta', alpha=1, beta=1)
# likelihood
y = pm.Bernoulli('y', p=theta, observed=data)
#y = pm.Binomial('theta',n=n_experimentos, p=theta, observed=sum(datos))
start = pm.find_MAP()
step = pm.Metropolis()
trace = pm.sample(1000, step=step, start=start,cores=1)
with our_first_model:
step = pm.Metropolis()
multi_trace = pm.sample(1000, step=step,cores=1)
if __name__ == '__main__':
burnin = 0 # no burnin
multi_chain = multi_trace[burnin:]
pm.traceplot(multi_chain, lines={'theta':theta_real})
plt.show()
# print(pm.gelman_rubin(multi_chain))
pm.forestplot(multi_chain, varnames=['theta'])
plt.show()
总这样报错呢!?????????????????????????
TypeError Traceback (most recent call last) <ipython-input-1-88ae9a9ad243> in <module> 34 plt.show() 35 # print(pm.gelman_rubin(multi_chain)) ---> 36 pm.forestplot(multi_chain, varnames=['theta']) 37 plt.show() 38 ~\anaconda3\lib\site-packages\pymc3\plots\__init__.py in wrapped(*args, **kwargs) 37 if "varnames" in kwargs: 38 raise DeprecationWarning( ---> 39 f"The `varnames` kwarg was renamed to `var_names`.", stacklevel=2 40 ) 41 original = func.__name__ TypeError: DeprecationWarning() takes no keyword arguments