I just went through the classic paper on WinBUGS, which might or might not be called probabilistic programming. It is listed on the probabilistic programming resource page, and it is certainly interesting. The WinBUGS “hello, world” is a linear regression model:
Monthly Archives: December 2013
I’ve been reading up on probabilistic programming, it is so close to PyMC, but so different. Coolest example so far comes from a talk on Microsoft’s offering, infer.net:
I’m catching up on all the happenings around IHME while I was busy last quarter, and here is the one where information technology served me the best. The Wednesday seminar from Oct 30 was a particularly cool approach to finding out about “hidden health behaviors” from waste water monitoring, like if there is more psychostimulant use in urban or rural settings.
It is the one where information technology served me the best because I was traveling when this seminar happened, and I watched it in a live broadcast online when I couldn’t fall asleep in Geneva. Yay technology. You can watch it now, too, in archived form. Yay, again.
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))
Continuing to catch up on my record of journal club topics, just under a month ago we read Parental income and the dynamics of health inequality in early childhood–evidence from the UK. There was a discussion of whether this was typical for a health economics paper.
Oh, how the quarter gets away. What happened in our journal club since I last recorded a paper? Well, I will start catching up now. The first thing that happened was just over a month ago we read a paper on prognosis for lovers of survival curves: Prognosis of patients with HIV-1 infection starting antiretroviral therapy in sub-Saharan Africa: a collaborative analysis of scale-up programmes. The author’s interpretation of their results:
Prognostic models should be used to counsel patients, plan health services, and predict outcomes for patients with HIV-1 infection in sub-Saharan Africa.