pierucci / heemod

:chart_with_upwards_trend:Markov Models for Health Economic Evaluations
https://pierucci.org/heemod/
Other
41 stars 25 forks source link

Demographics changing over markov cycles #322

Open dsivdnbe opened 6 years ago

dsivdnbe commented 6 years ago

I am trying to simulate population prevalence of diseases through the heemod package. One of the important features influencing prevalence here is population ageing. Through the 'update' code, it is possible to integrate a population distribution on the initial and inflow values. However, as years go by, this population distribution changes which I would like to implement in the markov chain as well. Is there any option to do this?

Thank you!

vojtech-filipec commented 6 years ago

I am not sure I understand the problem: How can the population distribution - I assume age distribution - change if it is derived (my assumption on your situation) from the initial population, hence initial distribution? Please clarify what type of change occurs.

Two remarks that you might find helpful:

dsivdnbe commented 6 years ago

Thank you for the response. I will try to explain my issue a bit better.

Essentially, my issue is that I don't know how to set the age of the inflow of the model (the 'new people' each cycle). I'll explain how/why I need this. At this point, I can create two Markov Chains with a different approach, that both encounter this age-inflow issue. Either I need to model the Markov Chain so that they are all (healthy) newborns (age=0) (see Model 1 below) or I need to model the Markov Chain so that the inflowers have different ages that I decide on (see Model 2).

Model 1) Modelling the whole population (states include healthy people, sick, recovered and dead). In this case, I want to model the inflow of new people, i.e. newborns, to reflect population growth. However, I was under the impression that when the inflow of each cycle is set at for example 100, and then the population distribution is given in 'update', that these 100 people 'flow in' to the model according to that distribution as well. So instead of being newborns at age 0, they are divided over the given age distribution.

The age given initially, in the parameter distribution, is 'overwritten' my the population distribution given in 'update', so I have not found a way to set this age at the inflow and let the model know they start at age 0.

Model 2) In this case, I would be modelling the sick people only (states include sick people, recovered and dead) In this case, the inflow of people in the model, is logically the incidence of the disease: anyone coming into the model, enters in the sick state. So here the problem is that I need to be able to let the model know the ages of all sick people; or at least, how many sick people enter in each age group...

Is there any way to model both or one of these? I hope it is clearer now (let me know if not!) and that I am not taking too much of your time! Thank you in advance.

lschomp commented 6 years ago

Hello,

I believe I am seeking to do something similar.

I'm working to model the cost effectiveness of bike shares (Costs include membership, medical costs given serious injury, economic costs for loss of productivity due to injury, and economic costs as the result of bicycle accident death, etc. Utilities include higher QALY from physical activity, more QALYs from reduced risk of death from chronic diseases among bike share participants, etc).

I do have an average age estimate for bike share participants (35 years old) but I would prefer to set my initial ages as a distribution across my model population (n= 10,000 for ease of interpretation since bicycle mortality rate is 5.7 per 10,000) instead of the 35 average.

Can one do that using Heemod? Grateful for the right code to replace the below?

par_mod <- define_parameters( age_start = 35, age = markov_cycle + age_start,

vojtech-filipec commented 6 years ago

Gentlemen, It seems to me your settings cannot be implemented in heemod; or if they can it is not a straight-forward way. Why? The package is intended to implement first-order Markov models, which are specified via an initial state vector and a migration matrix.

You might research the option to simulate the process over a distribution of inputs, and you might try to adjust the transition probabilities and growth of the age variable to simulate the inflow; still I am not sure these features will eventually formalize your process properly.