Mortality rates in a cohort model depending on creation time of the cohort

A place for Ventity software questions & answers
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Hi

I have a question regarding a cohort model. For a correct population model which reflects the technical and medical progress, the table for mortality rates should depend on the creation time of the cohor. How should this be implemented?

Best regards

Justus
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

This is not my area, but I'd think it could get messy. Some thoughts:

Frequently, models use
mortality rate = f(age)
implemented with a lookup.

You could generalize to:
mortality rate = f(age, gender, behavior, time)
where the time component picks up the technical progress aspect. Substituting and explicit tech index might be more attractive. We don't have a multidimensional lookup, and you might go nuts generating the data for one anyway, so I'd be looking at a way to decompose this into marginal contributions, something like:
mortality rate = f(age,gender)*behavior_effect*tech_effect
Since the age dimension is likely to be most diverse, I'd use the cohort age as the lookup x-axis, and handle gender by having distinct M/F cohorts.
The assumption here is that technology affects all ages equally, which might not be true. You could perhaps handle that by further decomposing the causes of mortality into technology-susceptible and resistant components. Falling off a building leads to a fairly inevitable death, whereas some diseases might become curable.

What I've never seen (possibly reflecting only my own ignorance) is a model in which health is a stock that erodes over time through cumulative insults (accidents, smoking, infectious diseases), with the insults decelerated by medical care. That would essentially be an aggregate way to represent having a lot of discrete states of the individual (diabetes, CHD, etc. yes/no). Then mortality could be fairly generically a function of status, irrespective of the origin of degradation.
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Thanks for your suggestions.

I did the following so far:
I used different Age mortality rate lookups for different existing cohorts, thus I put the Age mortality lookup in the cohort entity and initialized it for each existing cohort separately. The data are similar to your example, derived from the mortality tables which are available for each year. This reflects the fact that life expectancy changed considerably over the last 100 years. When I'm through I'll send you the model.

With regard to the Age mortality rates for the future I had the same idea to use a function which should reduce the mortality rates. In principle this could be a function of age and time, right?However, I realised that for my specific problem, where I want to consider a time range of 2000-2030 I might ignore the changes of the Age mortality rates for that time period, because the main effect comes from the exisiting cohorts.
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

That sounds sensible.

The reason I'm interested in an explicit stock of health status is the following thought experiment.

Suppose you have two initially identical cohorts. Cohort A starts around WWII and experiences the diet, exercise and health care that prevailed over the actual intervening decades. Cohort B somehow experiences current habits and care over the same period. When both reach 2017, they experience identical technology. However, I would expect them to have quite different mortality at present. Partly this would be due to different composition of the survivors - presumably A would have lost more members due to accidents and diseases that are now preventable or curable. But even if you compared the same surviving individual in treatment A vs. B, I would expect some difference due to cumulative exposure over history.

The implication would be that any treatment of mortality as f(age, attributes, technology) could be substantially wrong because it ignores the cumulative effects of individual history.
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Hi

Here you find an example of the cohort model we discussed about for the Swiss population for 2000-2030. I used existing cohorts from 1900-1990 with the corresponding, available age mortality rates. For 2000-2030 I used a default age mortality rate lookup (using the data of 2010). Is there a better solution to this? The mortality tables would also be available for this time range (as they have been used for population projections), but I was not able to link this properly to the model.

I faced a similar problem with net migration. Until 1990 I do not have to take this into account because it is already taken into account in the available population data. However, for 2000-2030 it is an important issue (60'000-80'000 per year). Here I should be able to add this amount of people properly each year according to their age and gender. So far I was not able to do this.

Best regards
Attachments
CohortPopGroups3 Test Swiss Population V1.zip
(31.31 KiB) Downloaded 998 times
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

I made a few mods, partly cleanup, but mainly to implement the switchover from cohort-specific mortality tables to a group generic mortality table.
CohortPopGroups3 Test Swiss Population V2.zip
(31.73 KiB) Downloaded 963 times
That creates discontinuities in the mortality rate for each cohort, which seems problematic. It might be better to have cohort-specific mortality rates, and then a group-specific multiplier for the reduction in mortality by age. However, that gives you a 2D function - something like relative_future_mortality(time,age). I plotted what that looks like in Excel (attached), but it's not obviously simple.
CohortPopGroup3 Births exogenous TF.xlsx
(27.02 KiB) Downloaded 1012 times
The underlying challenge seems to be that mortality varies both by age of cohort and birth year of cohort. This is basically a variation on my idea (above) that cumulative exposure or health status matters, but it also captures idiosyncratic effects like WWII.

One other issue to tackle: the mortality lookup has some fast dynamics in it - the spike in infant mortality from age 0 to 1. That won't be resolved if future cohorts are decadal.

I think the best way to start might be with the source data for mortality - what does that look like?
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Hi

There are indeed inconsistencies for deaths which are problematic. The mortality data are available as
- mortality tables (mortality rates for each year of birth, age, gender) for existing cohorts (> 1900) as well as for future cohorts (assumptions used to calculate population projections).
- Deaths per year, age, gender

My problem is to use those data specifically for each new cohort. Each cohort should carry with it a specific mortality table for the year of birth (creation time). But I'm not able to implement this.
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Ahhh ... suppose we replace the action that creates cohorts with more entries in the initialization data? Then you could assign the mortality table for each, but delay creating it until N years into the simulation. The only trick would be assigning the head cohort to receive births. I'm sure there's a way to do that. Thinking ...
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

This implements my suggestion:
CohortPopGroups3 Test Swiss Population V4 (2).zip
(32.84 KiB) Downloaded 996 times
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Wonderful! It does what I imagined. Thanks a lot!

However, I have a computational problem. When I look at Sum deaths these figures are too high (by a factor of 2 in 2000, compared to historical data). The decay afterwards can partially be explained by the fact that I did not yet include Net migration, but only partially. Moreover, Sum deaths looks somewhat awkward with a kind of ten-years periodicity. I checked the mortality rates and they seem to be OK (I made some minor changes). Could there be a computational issue? Or what might be the reason for this behavior?

Best regards
Attachments
Swiss Population V4 NEW.zip
(44.14 KiB) Downloaded 980 times
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

I think the death rate periodicity is probably due to the different resolution of the cohorts (10y) and mortality table (1y) that I mentioned above. For a decadal cohort, the mortality table should have decadal resolution to match.
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Is Sum Deaths too high compared to the individual death flows, or just compared to the data?
LarryYeager
Junior Member
Posts: 5
Joined: Fri Oct 14, 2016 12:43 am
Vensim version: Ventity

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by LarryYeager »

The 10 year inflections are due to the granularity of the table data -- especially at the higher ages. The table function uses linear interpolation that results in a noticeable discontinuity in the rate. This effect can be mitigated by adding more data points. The 10-year average results in too high an estimate in the first years and too low at the end of the range.

Another adjustment might be to use smaller cohorts. As the model stands, a single age is applied to each cohort beginning at the low end of the scale.

Is there a built-in inaccuracy of the data where the deaths may be assigned to a different cohort boundary than the population cohort where they began?

(Looks like I overlap with other comments.. posting anyway.)
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Actually I don't think more points in the lookup will mitigate the periodicity.

The problem is this:

In the mortality tables, early child mortality is high at age 0, (5%/year in my dummy data; I don't recall the real figure) and then very low (~0) from age 1 until old age.

However, if you start a decadal cohort that is initially 0 years old, it's mortality rate will vary dramatically, which would not happen in reality to a cohort containing a mixture of ages. The same thing will happen when the cohort starts to get old - a single point age may climb the slope of the mortality rate table more abruptly than a mix of ages would. Also, I think there may be some extra age lag or lead, because I use the starting point rather than the midpoint of the cohort as the age, as I recall.

I think the bottom line is that the granularity of the mortality table needs to match the cohort interval. So, you could switch to annual cohorts, or smooth the lookups.
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Thanks for your helpful posts!

I used now annual existing cohorts and also annual mortality rates. With these data the periodicity disappears and also the discontinuity with regard to Sum deaths. To make it simple for this test I used the same mortality rates (year 2000) for all years of birth. Due to this the deaths are too low (from 2000 to 2030), which is correct.

Best regards
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Great!
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

I realised that there is a problem with Births exogenous in the current model. As I wrote in the previous post, the model works fine with the annual mortality rates. However, Births are all added to only one cohort, the year-2000 cohort! In the model which you posted (CohortPopGroups3 Test Swiss Population V4) with ten-year cohorts, it worked fine, and I do not understand why it does not with the annual cohorts. I send you here the model with the excel-file which I used for the simulation CohortPopGroup3 Existing annual mortality 1900-2030 low.xlsx).

Thanks and best regards

Justus
CohortPopGroups3 Test Swiss Population V4.zip
(74.05 KiB) Downloaded 966 times
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

It must be something to do with repointing the Head Cohort attribute. I'll take a look.
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Problem #1 is the "prevalence hypertension" table on the Cohort tab of the input datasheet. Placing that on the Cohort tab causes the creation of 32 spurious entities. I moved it to a different tab, which fixes that.

There's another issue, so I won't post anything until that's sorted out.
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

Second problem is that the "Assign Head" action isn't firing, now that the future cohorts are created from data rather than by an action. Should be an easy fix. Stay tuned ...
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

For some reason the future cohorts aren't getting created, even after my fix. I've put in a bug ticket.

In the meantime, the solution is to create them in the future, rather than in 2000, as in the attached version. That's a more attractive solution computationally anyway, I think.
CohortPopGroups3 Test Swiss Population V5.zip
(123.34 KiB) Downloaded 933 times
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

The model works fine! And the next questions arrive immediately... I would like to have to "strains" in the model, a population with a low risk and a population with a increased risk for coronary heart disease. I decided to refer to blood pressure (together with gender and age). For this reason I need cohorts with normal blood pressure and with hypertension. I used an attribute ("bloodpressure" with normal and hypertension) and changed values of the existing cohorts using the values for hypertension prevalence in the Swiss population. Births go all into the population with normal blood pressure. That seems to work fine. However, what I need in addition is the incidence of hypertension (function of gender and age), which creates a transition (flow rate) from the population with normal blood pressure to the population with hypertension. Here I get stuck.

Best regards

J
CohortPopGroups3 Test Swiss Population V5.zip
(244.16 KiB) Downloaded 1094 times
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by tomfid »

I think we can do that - but not necessarily while I'm in an airport as at present. I'll take a look.
LarryYeager
Junior Member
Posts: 5
Joined: Fri Oct 14, 2016 12:43 am
Vensim version: Ventity

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by LarryYeager »

One way to approach this problem is attached. I created a parallel set of cohorts (fh and mh) for high blood pressure populations. Next, I added a related cohort attribute to the cohort entity and populated the original entities with the corresponding cohort IDs. Then an HBP reference was added so that I could drag Population from the HBP reference in the inspector. This creates a ghost from a different entity of the same kind. Then the HBP Onset flow was added to move population units from the original entity to the HBP entities. That flow includes a check for a null target so that HBP population does not disappear to nowhere. I did not adjust any data, such as splitting the initial populations. The flow was added as 1% of population per year, regardless of age (just wanted to check the plumbing).

There are other ways to approach the model that would allow dynamic entity creation. These would involve using multiple key attributes (gender, region, hbp status). It would probably be a good idea to add HBP status anyway to support sub-collection aggregates.
Attachments
CohortPopGroups3 Test Swiss Population LFY1.zip
(267.19 KiB) Downloaded 899 times
moudi
Senior Member
Posts: 69
Joined: Thu Nov 18, 2010 9:18 am
Vensim version: DSS

Re: Mortality rates in a cohort model depending on creation time of the cohort

Post by moudi »

Hi

Thank you for your suggestion. Clearly, blood pressure should be an attribute. I have included this aspect, but uploaded the wrong model. Sorry for that. The structure is the same as you referred to, but with "blood pressure" as an attribute instead of "region". Just for your information I include the correct model.

I'm not sure if the suggested solution works fine. The value of total population is doubled, and deaths "explode". In order to evaluate an appropriate solution I also include a short description of the project. Hope that this helps to understand the underlying rationale. I describe there the objectives of the project, the model structure, and how I imagine that at the end of the day the model structure might look like. Please let me know if this document makes clear what I mean.

Thanks and best regards
CohortPopGroups3 V5 Test Hypertension.zip
(123.71 KiB) Downloaded 948 times
Short description simulation project 170314.docx
(171.48 KiB) Downloaded 963 times
Post Reply