import pymc as mc import models # fit with MCMC, save results in a database db can be one of the # following: no_trace, ram, pickle, txt, sqlite, mysql, hdf5 vars = models.nonlinear() mcmc = mc.MCMC(vars, db='sqlite', dbname='nonlinear.sqlite') mcmc.use_step_method(mc.AdaptiveMetropolis, [mcmc.beta, mcmc.gamma]) mcmc.sample(5000, 2500, 5) # load the database from disk db = mc.database.sqlite.load('nonlinear.sqlite') print db.beta.stats() # do it again with txt to compare size of output vars = models.nonlinear() mcmc = mc.MCMC(vars, db='txt', dbname='nonlinear.txt') mcmc.use_step_method(mc.AdaptiveMetropolis, [mcmc.beta, mcmc.gamma]) mcmc.sample(5000, 2500, 5) # load the database from disk db = mc.database.txt.load('nonlinear.txt') print db.beta.stats()
import pylab as pl import pymc as mc import models import graphics # make model vars = models.nonlinear() #vars['beta'].value = [10, -9, 15] # carefully choosen initial value, for demonstration purposes only m = mc.MCMC(vars) m.sample(iter=20000, burn=10000, thin=10) # display results pl.figure(figsize=(12,9)) graphics.plot_2005_data() graphics.plot_nonlinear_model(m) pl.savefig('../tex/ex2.png')
def test_nonlinear_model(self): vars = models.nonlinear() assert 'gamma' in vars