Ejemplo n.º 1
0
def store_results(dm, area, sex, year):
    types_to_plot = 'p i r rr'.split()

    graphics.plot_convergence_diag(dm.vars)
    pl.clf()
    for i, t in enumerate(types_to_plot):
        pl.subplot(len(types_to_plot), 1, i + 1)
        graphics.plot_data_bars(dm.model.get_data(t))
        pl.plot(range(101),
                dm.emp_priors[t, 'mu'],
                linestyle='dashed',
                color='grey',
                label='Emp. Prior',
                linewidth=3)
        pl.plot(range(101), dm.true[t], 'b-', label='Truth', linewidth=3)
        pl.plot(range(101),
                dm.posteriors[t].mean(0),
                'r-',
                label='Estimate',
                linewidth=3)

        pl.errorbar(range(101),
                    dm.posteriors[t].mean(0),
                    yerr=1.96 * dm.posteriors[t].std(0),
                    fmt='r-',
                    linewidth=1,
                    capsize=0)

        pl.ylabel(t)
        graphics.expand_axis()

    pl.legend(loc=(0., -.95), fancybox=True, shadow=True)
    pl.subplots_adjust(hspace=0, left=.1, right=.95, bottom=.2, top=.95)
    pl.xlabel('Age (Years)')
    pl.show()

    model = dm
    model.mu = pandas.DataFrame()
    for t in types_to_plot:
        model.mu = model.mu.append(pandas.DataFrame(
            dict(true=dm.true[t],
                 mu_pred=dm.posteriors[t].mean(0),
                 sigma_pred=dm.posteriors[t].std(0))),
                                   ignore_index=True)
    data_simulation.add_quality_metrics(model.mu)
    print '\nparam prediction bias: %.5f, MARE: %.3f, coverage: %.2f' % (
        model.mu['abs_err'].mean(),
        pl.median(pl.absolute(
            model.mu['rel_err'].dropna())), model.mu['covered?'].mean())
    print

    data_simulation.initialize_results(model)
    data_simulation.add_to_results(model, 'mu')
    data_simulation.finalize_results(model)

    print model.results

    return model
Ejemplo n.º 2
0
def store_results(dm, area, sex, year):
    types_to_plot = 'p i r rr'.split()

    graphics.plot_convergence_diag(dm.vars)
    pl.clf()
    for i, t in enumerate(types_to_plot):
        pl.subplot(len(types_to_plot), 1, i+1)
        graphics.plot_data_bars(dm.model.get_data(t))
        pl.plot(range(101), dm.emp_priors[t, 'mu'], linestyle='dashed', color='grey', label='Emp. Prior', linewidth=3)
        pl.plot(range(101), dm.true[t], 'b-', label='Truth', linewidth=3)
        pl.plot(range(101), dm.posteriors[t].mean(0), 'r-', label='Estimate', linewidth=3)

        pl.errorbar(range(101), dm.posteriors[t].mean(0), yerr=1.96*dm.posteriors[t].std(0), fmt='r-', linewidth=1, capsize=0)

        pl.ylabel(t)
        graphics.expand_axis()
    
    pl.legend(loc=(0.,-.95), fancybox=True, shadow=True)
    pl.subplots_adjust(hspace=0, left=.1, right=.95, bottom=.2, top=.95)
    pl.xlabel('Age (Years)')
    pl.show()

    model = dm
    model.mu = pandas.DataFrame()
    for t in types_to_plot:
        model.mu = model.mu.append(pandas.DataFrame(dict(true=dm.true[t],
                                                         mu_pred=dm.posteriors[t].mean(0),
                                                         sigma_pred=dm.posteriors[t].std(0))),
                                   ignore_index=True)
    data_simulation.add_quality_metrics(model.mu)
    print '\nparam prediction bias: %.5f, MARE: %.3f, coverage: %.2f' % (model.mu['abs_err'].mean(),
                                                                         pl.median(pl.absolute(model.mu['rel_err'].dropna())),
                                                                         model.mu['covered?'].mean())
    print

    data_simulation.initialize_results(model)
    data_simulation.add_to_results(model, 'mu')
    data_simulation.finalize_results(model)

    print model.results

    return model
Ejemplo n.º 3
0
### @export 'data'
#model = data.load('models/af')
model = data.load('/home/j/Project/dismod/output/dm-39544')

model.input_data['age_end'] += 1  # change year-end to preferred format

### @export 'plot-prevalence-data'
df = model.input_data
df = df[df['data_type'] == 'p']  # select prevalence data
df = df[df['area'] == 'USA']
#df = df[df['year_start'] <= 2000]

pl.figure(**book_graphics.three_quarter_page_params)
pl.subplot(1, 2, 1)
graphics.plot_data_bars(df)
pl.xticks()
pl.yticks()
pl.xlabel('Age (years)')
pl.ylabel('Prevalence (per 1)')
pl.axis([-2, 102, -.01, .22])
pl.subplots_adjust(left=.23 + .14, right=.23 + .87, bottom=.14, top=.87)

pl.savefig('book/graphics/af_ages_intervals.pdf')

print 'The systematic review of the descriptive epidemiology of atrial fibrilation included $%d$ observations of disease prevalence for the United States' % len(
    df)

### @export 'save-results'

pl.show()
Ejemplo n.º 4
0
reload(book_graphics)

# <codecell>

book_graphics.set_font()

### @export 'initialize'
df = pandas.read_csv('/home/j/Project/dismod/gbd/data/ssas_mx.csv', index_col=None)
df['age_end'] += 1

# <codecell>

### @export 'initial-rates'
pl.figure(**book_graphics.quarter_page_params)

graphics.plot_data_bars(df)
pl.semilogy([0], [.1], '-')

pl.ylabel('Rate (Per 1)')#
pl.yticks(fontsize='large')
pl.xlabel('Age (Years)')
pl.xticks()

pl.subplots_adjust(.1, .175, .98, .875, .275)
pl.axis([-5, 105, 2.e-4, .8])

min_mx = df['value'].min()
age_min_mx = df['age_start'][df['value'].argmin()]
max_mx = df['value'].max()
age_max_mx = df['age_start'][df['value'].argmax()]
Ejemplo n.º 5
0
agm.fit_age_standardizing_model(model)


pl.figure(figsize=(17., 11), dpi=72)

pl.xlabel('Age (Years)', size=32)
pl.ylabel('Rate (Per PY)', size=32)
pl.xticks(size=28)
pl.yticks(size=28)
pl.grid()

pl.plot(model.ages, model.pi_age_true, '-', label='Truth', linewidth=10, color=colors[0], zorder=-2)
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_truth.png')

graphics.plot_data_bars(model.input_data, 'talk')
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_data.png')

pl.plot(model.ages, model.vars['mu_age'].stats()['mean'], 'k-', label='Posterior mean', linewidth=10, zorder=10)
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_standardize_0.png')


pl.plot(model.ages, model.vars['mu_age'].trace().T, '-', color='grey', alpha=.1, linewidth=10, zorder=-1)

pl.plot(model.ages, model.vars['mu_age'].stats()['95% HPD interval'][:,0], 'k-', label='95% HPD interval', linewidth=2, zorder=10)
pl.plot(model.ages, model.vars['mu_age'].stats()['95% HPD interval'][:,1], 'k-', linewidth=2, zorder=10)


pl.legend(fancybox=True, shadow=True, loc='upper right', prop={'size':32})
Ejemplo n.º 6
0
pl.ylabel('Rate (Per PY)', size=32)
pl.xticks(size=28)
pl.yticks(size=28)
pl.grid()

pl.plot(model.ages,
        model.pi_age_true,
        '-',
        label='Truth',
        linewidth=10,
        color=colors[0],
        zorder=-2)
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_truth.png')

graphics.plot_data_bars(model.input_data, 'talk')
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_data.png')

pl.plot(model.ages,
        model.vars['mu_age'].stats()['mean'],
        'k-',
        label='Posterior mean',
        linewidth=10,
        zorder=10)
pl.axis([-5, 105, 0., 1.])
pl.savefig('/media/windows/t/age_group_standardize_0.png')

pl.plot(model.ages,
        model.vars['mu_age'].trace().T,
        '-',