In [1]:
%matplotlib inline
from pprint import pprint
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pymc
import spacepy.toolbox as tb
import spacepy.plot as spp
In [9]:
np.random.seed(8675309)
test_data_dist = pymc.Poisson('Test_Data', mu=50)
test_data = [test_data_dist.random() for v in range(10000)]
# print(d_tmp)
plt.hist(test_data, 10)
Out[9]:
In [10]:
rate = pymc.Uniform('mean', lower=0, upper=1000)
data = pymc.Poisson('Data', mu=rate, observed=True, value=test_data[::100])
model = pymc.MCMC((rate, data))
In [11]:
model.sample(iter=10000, burn=1000, verbose=0, progress_bar=1, burn_till_tuned=True, thin=10)
In [12]:
pprint(model.stats())
pymc.Matplot.plot(model)
In [13]:
ans = []
for n_iter in tb.logspace(1e1, 1e6, 10):
print('%%%%%%%', n_iter)
del model
model = pymc.MCMC((rate, data))
model.sample(iter=10000, burn=1000, verbose=0, thin=10, progress_bar=1, burn_till_tuned=True)
ans.append((n_iter, model.stats()))
In [19]:
n_iter = [v[0] for v in ans]
plt_range = [v[1]['mean']['95% HPD interval'] for v in ans]
plt.figure()
plt.loglog(n_iter, plt_range)
plt.ylim((4e1, 6e1))
plt.loglog(n_iter, [v[1]['mean']['mean'] for v in ans], label='mean')
plt.legend()
# plt.gca().locator_params(axis='y',nbins=10)
plt.yscale('linear')
In [ ]: