In the last couple of weeks we've been hard at work to extend the HPV model. In the original version, we were considering a cohort of 280 thousand 12 years old "virtual girls"; we simulated a follow up of 90 years, in which individuals could exit because of deaths or move around the clinical states.
Now we're trying to make the cohort dynamic, ie allow new entries, as well as exits. The way we're doing it is by allowing the original women to have babies; when they get old enough, the children will enter the model as well. Thus, effectively, we'll account for two generations.
But that's not easy at all. One big problem is that, by definition of the Markov model, once "individuals" coming from different states have been merged into a common one, it is basically impossible to discern where they were coming from.
One good solution is to use "tunnel" nodes (eg in the graph above patients may die from cancer at different points in time, but to account for the fact that their survival probability is different depending on how long they have been diagnosed with cancer, there are 3 different cancer states). For now, we still have it under control, but using this strategy the number of nodes in the model tends to become very large and thus it can be problematic to estimate the actual transitions.
This has got me thinking that it would be nice to build some form of "object-oriented Markov models"; something like a set of "modules" which in fact contains smaller Markov models. The main Markov model would then connect these modules and "individuals" would transition across them (and of course among the nodes that define the inner Markov models within each compartment). I once did something like that using Bayesian networks.
It's still a bit hazy in my head (and in fact, I've not even looked if somebody has already done this!), but it seems like a nice idea.