######总是报错为
'''
lline 33, in <module> print(pm.gelman_rubin(multi_chain)) AttributeError: module 'pymc3' has no attribute 'gelman_rubin'
ine 39, in <module> print(pm.df_summary(multi_chain)) AttributeError: module 'pymc3' has no attribute 'df_summary'
'''
#补充一下信息。代码如下:相应功能更新到arviz模块了。
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, var_names=['theta'])
plt.show()
print(pm.summary(multi_chain))
print(pm.df_summary(multi_chain))