Daily Archives: December 19, 2013

The Age Pattern of Mortality: a challenge for our fancy new MCMC methods

I’ve come across this demographer’s classic a few times while learning about Global Health, The Age Pattern of Mortality by Heligman and Pollard. (Note this is J H Pollard, actuary, not to be confused with J M Pollard, cryptographer.)

This paper comes up with a very appealing parameterization of age-specific mortality, in a model that is highly nonlinear and turns out to be quite a pain for computation.

basic_curve

Appealing because the three terms in the sum have good demographic interpretations:

age_pattern

Quite a pain for computation because some of the parameters are very co-linear, or maybe co-non-linear, if that is a word:

xcorr

It would be cool to see PyMC3 make short work of this, and I managed to code it up, but I haven’t been able to fit it yet. Patches welcome.

with pm.Model() as m:
    a = pm.Flat('a')
    b = pm.Flat('b')
    c = pm.Flat('c')
    d = pm.Flat('d')
    e = pm.Flat('e')
    f = pm.Flat('f')
    g = pm.Flat('g')
    h = pm.Flat('h')
    
    t1 = a**((x+b)**c)
    t2 = d * T.exp(-e * T.log(x/f)**2)
    t3 = g*h**x
    
    y_pred = t1 + t2 + t3
    y_obs = pm.Normal('y_obs', mu=y_pred/y, sd=1.,
                      observed=ones_like(y))

Comments Off on The Age Pattern of Mortality: a challenge for our fancy new MCMC methods

Filed under global health