In [1]:
import numpy as np
import pymc as mc
import seaborn
In [18]:
bkg = 4
cts = 20
realbkg = mc.Uniform('bkg', 1, 1000)
obsbkg = mc.Poisson('obsbkg', realbkg, observed=True, value=bkg)
realcts = mc.Uniform('cts', 0, 1000)
obscts = mc.Poisson('obscts', realbkg + realcts, observed=True, value=cts)
model = mc.MCMC((realbkg, obsbkg, realcts, obscts))
map = mc.MAP(model)
map.fit()
In [19]:
model.sample(40000, burn=3000, thin=10)
mc.Matplot.plot(model)
print(model.summary())
In [22]:
bkg = 4
cts = 20
realbkg = mc.Uniform('bkg', 1, 1000)
obsbkg = mc.Poisson('obsbkg', realbkg, observed=True, value=bkg)
realcts = mc.Uniform('cts', 0, 1000)
@mc.stochastic
def obscts(realbkg=realbkg, realcts=realcts, observed=True, value=cts):
return mc.Poisson('b1', realbkg) + mc.Poisson('b2', realcts)
model = mc.MCMC((realbkg, obsbkg, realcts, obscts))
map = mc.MAP(model)
map.fit()
In [ ]:
model.sample(40000, burn=3000, thin=10)
mc.Matplot.plot(model)
print(model.summary())
In [ ]: