While I’m catching up on journal club reading, two weeks ago we discussed Chu et al, Transmission Assessment Surveys (TAS) to Define Endpoints for Lymphatic Filariasis Mass Drug Administration: A Multicenter Evaluation, which takes on the question of how to decide when it is safe to stop a massive disease elimination program. This work must rely on some cool mathematical epi modeling, to say how many years of what level of coverage is necessary before you can hope the LF is gone.
Category Archives: disease modeling
Journal Club: Transmission Assessment Surveys (TAS) to Define Endpoints for Lymphatic Filariasis Mass Drug Administration: A Multicenter Evaluation
This week in journal club we are discussing Rudan et al, Epidemiology and etiology of childhood pneumonia in 2010. This description of an estimation method comes with an 80 page spreadsheet showing the calculation!
Papers on with results from some of my favorite models from the GBD 2010 appeared this week:
Degenhardt et al, Global burden of disease attributable to illicit drug use and dependence: findings from the Global Burden of Disease Study 2010, http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(13)61530-5
Whiteford et al, Global burden of disease attributable to mental and substance use disorders: findings from the Global Burden of Disease Study 2010, http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(13)61611-6
It is just the kind of stuff to generate catchy health news headlines.
The figure from the last post was quite slickly generate with a little Python pattern that I want to share. It is all based on my new Python knowledge of the “with” statement, and my new mainstay of pythonic data manipulation: pandas.
from contextlib import contextmanager @contextmanager def columns_in(df): col_names = df.columns col_list = [df[col] for col in col_names] try: yield tuple(col_list) finally: for i, col in enumerate(col_names): df[col] = col_list[i]
With “with”, the python code for the simulation is almost exactly the mathematical description of the simulation:
with columns_in(state) as (C,D,q,r,s): for t in range(T-1): C[t+1] = C[t] + q[t] - r[t] if C[t+1] < 0: C[t+1] = 0 D[t+1] = D[t] + r[t] - s[t] q[t+1] = s[t+1-7] if t % 7 == 6 else 0 # special case, first pickup, need to deliver something if t == 6: q[t+1] = 70. r[t+1] = 8. s[t+1] = D[t] if t % 7 == 6 else 0 # special case, forget to take the diapers out if t == 34: s[t+1] = 0
The impetus for my first personal, practical application of pure system dynamics modeling came from my sleep-deprived thoughts about Baby Diaper Service, which works as follows:
On your first and second deliveries you receive the full number of diapers you order. Thereafter, you will be on a rotation system. The number of diapers you turn in one week will be returned to you the next, up to your maximum order.
Simple? Sure, but complex enough to have two hallmarks of SDM: feedback and delay.
- Feedback: The number of diapers delivered depends on the number I turn in.
- Delay: The number of diapers I get this week is the number I turned in last week.
This led to a very different sort of science that the contemporaneously developing field of econometrics. This divide is captured in a dialog I enjoyed in The Electronic Oracle (if I recall correctly, I don’t have it nearby).
However, the futures that could be are just what I was concerned about in those sleepless early months. I kept worrying about a dirty diaper catastrophe, what if we forget to put dirty diapers out this week?
Needless to say, I was greatly relieved to have the results of this simulation in my back pocket. Thank you, System Dynamics Modeling!
Epilogue: eventually I did miss one week and failed to turn in diapers to the delivery service. I was all ready to tough it out for my reward. But it turns out that you just call up the service and get them to come by for a special pickup for a small fee. Thank you, Baby Diaper Service!
There is an area of management sciences thta I didn’t see much of in my days of ACO at CMU. It is yet another thing that I didn’t realize I’d be interested in when I was a student (like statistics). System dynamics modeling is its name.
I started to understand the importance of this research area when I was building my model of the Insecticide Treated mosquito Net distribution system a few years ago.
After we drew up a wonderful mess of boxes and arrows representing a compartmental model of nets flowing from manufacturers to distributors to households, I started thinking that this must have been done before. And indeed, in the early days of computer research, a bustling group centerd at the Sloan School at MIT did do it. I learned my history on this from an interesting book Feedback thought in social science and systems theory by George Richardson. The practical conventions, as far as I know them, I put together from a primer and a textbook, both of which are loaded with demographic and epidemiological examples. In my research, I’ve always focused on something a little different that the mainstream of system dynamics modeling, using the compartmental models to justify mechanistically one or another particular nonlinear regression.
It was in my sleep-deprived state of parenthood to a one-month-old that the Sloan-School brand of system dynamics modeling method really proved its utility for me.
I didn’t go to INFORMS, because I get lost at mega-conferences. Give me 200 people attending one track of talks, preferably with lots of coffee breaks. But I did talk to people who went. One exciting thing that I heard about is this: Pyomo, the Python Optimization Modeling Objects package. There was a talk that applied it to do some optimization of disease parameters for an infectious disease model, which is sort of like the business I’ve been getting in to lately. Fortunately, the slides from the talk are online, here.
Now I must see if I can run the examples.
An old adage when writing research papers is “put it in a figure”. If there is one thing that I want the reader to know when they put my paper down, then I try to put it in a beautiful figure, with a complete explanation in the caption. I saw the extension of this rule to talks recently, and I’m going to try it out myself: if there is one thing you want your audience to remember when they leave your talk, put it in a movie.
Here is the movie that taught me this lesson:
And here is a blog post by one of the video creators, to tell you more about what you’re seeing.
As mentioned, HA took a brief vacation while I worked hard on my disease modeling system for the Global Burden of Disease 2010 study. First, I thought I was writing a book about the methods, but as I wrote I realized more and more things that I would like to do differently implementing the methods. So then I switched to re-writing all of the implementation, which seemed like an ambitious 1 week project. Two months later, I’m very happy with the results, and they’re online just in time for my users to crunch many numbers.
Of course, there are still plenty of issues that are coming up, and I still have to get back to writing the book about this approach. But I miss the variety of the blogging, and I’m starting it back up, even if I have plenty of other writing responsibilities.
Also, I love the wisdom of the internet. Dear readers, here is the description of this integrative disease modeling book I’ve been working on. Does it sound like something you’ve seen before? I’ve found that the mathematics I’m using have been rediscovered many times in many fields, all of which I would like to know more about.
Integrative systems modeling of disease in populations is the first book-length treatment of model-based meta-analytic methods for descriptive epidemiology. It develops, from first principles, the system dynamics model which constitutes the theoretical foundation of Years Lived with Disability (YLD) estimation in burden of disease studies. This compartmental model of the progression of disease through a population has been used for over ten years in global health epidemiology in the popular generic disease modeling system DisMod II, distributed by the World Health Organization. However, until now, the description of the model and the methods behind the software have been scattered through the scientific literature in a loose collection of journal articles and operations manuals.
In addition to collecting the prior work on compartmental modeling of disease together in one place, this book significantly extends the model, by formally connecting the system dynamics model of disease progression to a statistical model of epidemiological rates, the kind that are calculated in descriptive epidemiological research and collected through systematic review. This combination of systems dynamics modeling and statistical model, which the author calls integrative systems modeling allows the model to integrate all available relevant data. Because advanced numerical algorithms are needed to fit these complex models, a section of the book provides the necessary background on Markov chain Monte Carlo (MCMC) computation.
Experience with the results of systematic review indicates that when all available relevant data is collected, it is often very sparse and very noisy. The integrative systems models developed in this book focus particularly on techniques for handling sparse, noisy data. The book explores statistical models for over-dispersed count data, covariate modeling to both explain systematic variation in epidemiological rate data and increase predictive accuracy for estimates for subpopulations where no data is available, and age-pattern modeling to systematically incorporate expert knowledge about how quickly epidemiological rates can vary as a function of age. It also develops a novel theory of age group modeling to address heterogeneity in age groups commonly found during systematic review.
The theoretical foundations of integrative systems modeling of disease in populations are complemented with a series of applications of the model to meta-analysis of more than a dozen different diseases. These practical applications provide a unique opportunity to see how the model performs in a variety of scenarios, and also demonstrate how the model performs when the model assumptions are violated, and how to work around model assumption violations.
The book concludes with a detailed description of the future directions for research in model-based meta-analysis of descriptive epidemiological data and integrative systems modeling for global health.