Termination Condition

I am setting up a Markov Cohort Analysis and would like for it to terminate when all of the cohort is dead (aka over a life time). Any suggestions for how to represent this in the termination?


I have tried _stage_eff < 0.001 and it does not work.





  • Very old models used _stage_eff < 0.001, but that fails now because that is true before the first cycle ever runs.

    You could run for 100 years. Everyone should be dead by then.

    For something a bit more complex, you can use an expression like this...

    StateProb(##) >= 0.999

    In that expression, replace ## with the state number of the Dead state counting down from the top.

    Comment actions Permalink
  • Markov processes never quite go to 100% absorption (or 0% survival) if the criterion for absorption (i.e. the transition from one or more of the alive states into the dead state) is based on probabilities (which is why _stage_eff < 0.001 doesn't work). You could however, specify a disease-specific probability of death and age-and-sex stratified general population mortality based on life tables. In Canada, we get life tables from Statistics Canada.

    Add terminal subtrees where the first indicates general population mortality and if that doesn't happen there is another chance node specifying disease-specific mortality. Remember that the latter is conditional on not having suffered gen pop related mortality.

    Using root expressions like pDieGenPop = tblDieGenPop[int(CurrentAge);Gender+1], where CurrentAge = StartAge + _stage, and Gender = 1 for women and 0 for men.Set up tblDieGenPop[] from population life tables where the index is years, the first column lists the annual mortality risk for men at each age and the second column for women. This solution assumes an annual cycle length.

    You set the probability of annual gen pop mortality after a certain age, say 100, to be 1.0. 

    This guarantees that everyone will be absorbed.

    If you only want to consider disease-specific mortality then you could use an 'if' statement:

    pDie = if(CurrentAge < 100;pDisSpecDeath;1)

    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post