dm.clear_fit() dm.clear_empirical_prior() dismod3.neg_binom_model.covariate_hash = {} import fit_world fit_world.fit_world(dm, generate_diagnostic_plots=False, store_results=False, map_only=False) models[ii] = dm #results[ii] = dict(rate_stoch=dm.vars['prevalence+world+all+all']['rate_stoch'].stats(), dispersion=dm.vars['prevalence+world+all+all']['dispersion'].stats()) ### @export 'save' for d in dm.data: d['sex'] = 'male' # otherwise tile plot shows it twice reload(book_graphics) book_graphics.plot_age_patterns(dm, region='world', year='all', sex='all', rate_types='remission incidence prevalence'.split()) pl.subplot(1,3,1) pl.yticks([0, .04, .08], [0,4,8]) pl.ylabel('Rate (Per 100 PY)') #pl.subplot(1,4,2) #pl.yticks([0, .04, .08], [0,4,8]) pl.subplot(1,3,2) pl.yticks([0, .0025, .0051], [0,.25,.5]) pl.subplot(1,3,3) pl.yticks([0, .025, .05], [0,2.5,5]) pl.savefig('hep_c-consistent%d.pdf' % ii)
dm = initialize_model() dm.description = 'best version before getting updated data' prev_data = [d for d in dm.data if d.get('country_iso3_code') == 'GBR'] for d in prev_data: d['effective_sample_size'] = 1.e5 dm.params['delta_effect_prevalence'] = dict(mean=3., std=.25) dm.params['global_priors']['decreasing']['prevalence'] = dict(age_start=70, age_end=100) pf_data = [d for d in dm.data if dm.relevant_to(d, 'prevalence_x_excess-mortality', region, year, sex)] for d in pf_data + prev_data: d['effective_sample_size'] = 1.e5 dm.data = prev_data + pf_data + [d for d in dm.data if dm.relevant_to(d, 'all-cause_mortality', region, year, sex)] dm.params['global_priors']['smoothness']['prevalence']['amount'] = 'Moderately' dm.params['global_priors']['smoothness']['incidence']['amount'] = 'Moderately' fit_posterior.fit_posterior(dm, region, sex, year, map_only=False, store_results=False) models.append(dm) for ii, dm in enumerate(models): book_graphics.plot_age_patterns(dm, region, year, sex, rate_types='prevalence excess-mortality prevalence_x_excess-mortality'.split(), yticks={'prevalence': [0, .0006, .0012], 'excess-mortality': [0, 8, 16], 'prevalence_x_excess-mortality': [0, .001, .002]}) pl.figtext(0, .005,'(%s) %s' % ('abcdefghijklmnopqrstuvqxyz'[ii], dm.description), fontsize=10) pl.savefig('cirrhosis-%d.png'%ii) pl.savefig('cirrhosis-%d.pdf'%ii) pl.show()
def set_birth_prev(value): model.vars['logit_C0'].value = mc.logit(pl.maximum(1.e-9, value)) # <codecell> ### @export 'mental' set_rate('remission', pl.ones_like(ages) * .25) set_rate('incidence', pl.where((ages > 14) & (ages < 65), (65 - ages) * .001, 0.)) set_birth_prev(0) set_rate('excess-mortality', 1e-4 * pl.ones_like(ages)) book_graphics.plot_age_patterns(model, yticks=[0, .2, .4], panel='a') pl.savefig('forward-sim-mental.pdf') # <codecell> ### @export 'congenital' set_rate('remission', pl.zeros_like(ages)) set_rate('incidence', pl.zeros_like(ages)) set_birth_prev(.2) set_rate('excess-mortality', .5 * (ages / 100.)**2) reload(book_graphics) book_graphics.plot_age_patterns(model, yticks=[0, .2, .4], panel='b') pl.savefig('forward-sim-congenital.pdf') # <codecell>
dm.params['global_priors']['smoothness']['incidence']['amount'] = 'Moderately' fit_posterior.fit_posterior(dm, region, sex, year, map_only=False, store_results=False) models.append(dm) for ii, dm in enumerate(models): book_graphics.plot_age_patterns( dm, region, year, sex, rate_types='prevalence excess-mortality prevalence_x_excess-mortality'. split(), yticks={ 'prevalence': [0, .0006, .0012], 'excess-mortality': [0, 8, 16], 'prevalence_x_excess-mortality': [0, .001, .002] }) pl.figtext(0, .005, '(%s) %s' % ('abcdefghijklmnopqrstuvqxyz'[ii], dm.description), fontsize=10) pl.savefig('cirrhosis-%d.png' % ii) pl.savefig('cirrhosis-%d.pdf' % ii) pl.show()
pl.yticks([0,.25,.5,.75]) pl.ylabel('Prevalence (per 1)') pl.xlabel('Age (years)') pl.title('a) All data') pl.subplot(1,2,2) dismod3.plotting.plot_intervals(dm, [d for d in dm.data if dm.relevant_to(d, 'prevalence', region, year, sex)], color='black', print_sample_size=False, alpha=.75, plot_error_bars=False, linewidth=1) book_graphics.plot_rate(dm, dismod3.utils.gbd_key_for('prevalence', region, year, sex), linestyle='-') pl.axis([10,60,-.01,1]) pl.yticks([0,.25,.5,.75]) pl.ylabel('Prevalence (per 1)') pl.xlabel('Age (years)') pl.title('b) North America, High Income, %s'%year) pl.subplots_adjust(bottom=.15, wspace=.25, top=.85, left=.1, right=.95) pl.savefig('pms-prev.pdf') book_graphics.plot_age_patterns(dm, region=region, year=year, sex=sex, xticks=[15, 25, 35, 45, 55], rate_types='incidence remission prevalence'.split(), yticks=dict(incidence=[0, .05, .1, .15, .2], remission=[0, .5, 1, 1.5, 2.], prevalence=[0, .25, .5, .75, 1])) pl.savefig('pms-consistent.pdf') ### @export 'save' book_graphics.save_json('pms.json', vars())
""" Compare age-standardizing model to midpoint approx""" ### @export 'setup' import sys sys.path += ['..', '../..'] import pylab as pl import pymc as mc import dismod3 import book_graphics reload(book_graphics) ### @export 'initialize-model' ### @export 'initial-rates' book_graphics.plot_age_patterns(dm) pl.savefig('initial.png')
def set_rate(rate_type, value): t = {'incidence':'i', 'remission': 'r', 'excess-mortality': 'f'}[rate_type] for i, k_i in enumerate(model.vars[t]['knots']): model.vars[t]['gamma'][i].value = pl.log(pl.maximum(1.e-9, value[i])) def set_birth_prev(value): model.vars['logit_C0'].value = mc.logit(pl.maximum(1.e-9, value)) ### @export 'congenital' set_rate('remission', pl.zeros_like(ages)) set_rate('incidence', pl.zeros_like(ages)) set_birth_prev(.2) set_rate('excess-mortality', .5*(ages/100.)**2) book_graphics.plot_age_patterns(model, yticks=[0,.2,.4], xticks=[0,25,50,75,100], panel='b') pl.savefig('book/graphics/forward-sim-congenital.pdf') ### @export 'mental' set_rate('remission', pl.ones_like(ages)*.25) set_rate('incidence', pl.where((ages > 14) & (ages < 100), (100-ages)*.001, 0.)) set_birth_prev(0) set_rate('excess-mortality', 1e-4*pl.ones_like(ages)) book_graphics.plot_age_patterns(model, yticks=[0,.2,.4], panel='a') pl.savefig('book/graphics/forward-sim-mental.pdf') ### @export 'old_age' set_rate('remission', pl.ones_like(ages)*0.)
import fit_world fit_world.fit_world(dm, generate_diagnostic_plots=False, store_results=False, map_only=False) models[ii] = dm #results[ii] = dict(rate_stoch=dm.vars['prevalence+world+all+all']['rate_stoch'].stats(), dispersion=dm.vars['prevalence+world+all+all']['dispersion'].stats()) ### @export 'save' for d in dm.data: d['sex'] = 'male' # otherwise tile plot shows it twice reload(book_graphics) book_graphics.plot_age_patterns( dm, region='world', year='all', sex='all', rate_types='remission incidence prevalence'.split()) pl.subplot(1, 3, 1) pl.yticks([0, .04, .08], [0, 4, 8]) pl.ylabel('Rate (Per 100 PY)') #pl.subplot(1,4,2) #pl.yticks([0, .04, .08], [0,4,8]) pl.subplot(1, 3, 2) pl.yticks([0, .0025, .0051], [0, .25, .5]) pl.subplot(1, 3, 3) pl.yticks([0, .025, .05], [0, 2.5, 5])
model.input_data = pandas.read_csv('/home/j/Project/dismod/gbd/data/ssas_mx.csv', index_col=None) for t in types: model.parameters[t]['parameter_age_mesh'] = [0, 5, 15, 25, 35, 45, 55, 65, 75, 100] model.vars = consistent_model.consistent_model(model, 'all', 'total', 'all', {}) for i, k_i in enumerate(model.parameters[t]['parameter_age_mesh']): model.vars['i']['gamma'][i].value = pl.log(k_i*.0001 + .001) model.vars['r']['gamma'][i].value = pl.log(.1) model.vars['f']['gamma'][i].value = pl.log(.05) # <codecell> ### @export 'initial-rates' reload(book_graphics) book_graphics.plot_age_patterns(model, types='i r m f p'.split(), xticks=[0,50,100], yticks=dict(i=[0,.01,.02], r=[0,.05,.1], m=[0,.2,.4], f=[0,.05,.1], p=[0,.05,.1])) pl.subplots_adjust(wspace=.5) pl.savefig('book/graphics/initial.pdf') # <codecell> ### @export 'more-remission' reload(book_graphics) for i, k_i in enumerate(model.parameters[t]['parameter_age_mesh']): model.vars['f']['gamma'][i].value = pl.log(k_i*.005 + .001) book_graphics.plot_age_patterns(model, types='i r m f p'.split(), xticks=[0,50,100], yticks=dict(i=[0,.01,.02], r=[0,.05,.1], m=[0,.2,.4], f=[0,.3,.6], p=[0,.01,.02]), panel='a') pl.subplots_adjust(wspace=.5) pl.savefig('book/graphics/more-excess-mortality.pdf') # <codecell>