When you use any of the hēRo3 keywords that identify state time in a formula (ie, ‘state_time’, ‘state_day’, ‘state_week’, ‘state_month’, ‘state_year’), you can track how long patients have been in a particular state in a Markov cohort model. (Note: these keywords cannot be used in partitioned survival models.) By tracking how long patients have been in a particular state in a model, you are creating so-called ‘tunnel states’. Tunnel states can be very useful when you want to make particular values in a model (eg, costs, transition probabilities) dependent on how long patients have been in a given state.
While ‘state_time’ keeps track of the number of model cycles spent in a given health state, ‘state_week’ keeps track of the number of weeks spent in a particular health state. (The hēRo3 keywords, ‘state_day’, ‘state_month’, and ‘state_year’ keep track of the number of days, months, and years, respectively, spent in a given health state.) For example, if you have a model that uses monthly cycles, these hēRo3 keywords would take on values as follows with each subsequent cycle:
Cycles in State |
'state_time' |
'state_day' |
'state_week' |
'state_month' |
state_year' |
1 |
1 |
30.43… |
4.34… |
1 |
0.083… |
2 |
2 |
60.87… |
8.69… |
2 |
0.16… |
3 |
3 |
91.31… |
13.04… |
3 |
0.33… |
4 |
4 |
121.75 |
17.39… |
4 |
0.41… |
etc. |
etc. |
etc. |
etc. |
etc. |
etc. |
When you include one of these hēRo3 keywords in a formula in your model, hēRo3 will automatically cause your model to track time spent in particular states. Imagine you have a model with three health states (‘Healthy’, ‘Sick’, ‘Dead’) and you want to build in an assumption that patients who enter the ‘Sick’ state have a high risk of hospitalization, ‘prob_hosp_high’, for the rest of their lives.
In this example, you do not need to track state time because risk of hospitalization among patients who enter the ‘Sick’ state is not dependent on how long they have been ill. Alternatively, if you wanted to build in an assumption that patients who enter the ‘Sick’ state have a high risk of hospitalization, ‘prob_hosp_high’, for 3 months after becoming ill, after which they have a low risk of hospitalization, ‘prob_hosp_low’. You could use the hēRo3 keyword, ‘state_month’, in a formula as follows:
When you define the probability of hospitalization in the ‘Sick’ state in this manner, you effectively change your model to one that no longer has a single ‘Sick’ state, but rather to one with N ‘Sick’ tunnel states, where N equals the number of cycles (ie, months) from the start of your model until the end of the modelling time horizon. Each tunnel state defines how long a patient has been in the ‘Sick’ state (eg, ‘Sick_1’ = first month in ‘Sick’ state, ‘Sick_2’ = second month in ‘Sick’ state, and so on).
The other hēRo3 keywords that are similar to ‘state_month’ (ie, ‘state_day’, ‘state_week’, and ‘state_year’) define tunnel states using different measures of time. A year in the ‘Sick’ state, for example, would represent one cycle if your model has annual periodicity and twelve cycles if your model has monthly periodicity.
(In general, if you are new to hēRo3, we recommend that you not use the hēRo3 keyword, ‘state_time’, until you are familiar with how it differs from other keywords of a similar nature that are used to define tunnel states).
Because tunnel states can vastly expand the size of a model and the time that it takes to run, it is best to create only as many tunnel states as you think you will need. For example, if your model has a 20-year time horizon (ie, 240 months) and you create tunnel states for the ‘Sick’ state, there would be 240 ‘Sick’ tunnel states because your model uses monthly cycles. You can limit the number of tunnel states in your model by using longer model cycles, shortening the time horizon of your model, or by setting an appropriate value for maximum tunnel states (MTS). For more information on limiting tunnel states, click here.