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.
Appealing because the three terms in the sum have good demographic interpretations:
Quite a pain for computation because some of the parameters are very co-linear, or maybe co-non-linear, if that is a word:
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))