Skip to content

Commit c500bf9

Browse files
committed
Merge branch 'main' into minimal-fertility
2 parents e1c6e2f + dbe0443 commit c500bf9

21 files changed

Lines changed: 1143 additions & 71 deletions

File tree

Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
..
2+
Section title decorators for this document:
3+
4+
==============
5+
Document Title
6+
==============
7+
8+
Section Level 1 (#.0)
9+
+++++++++++++++++++++
10+
11+
Section Level 2 (#.#)
12+
---------------------
13+
14+
Section Level 3 (#.#.#)
15+
~~~~~~~~~~~~~~~~~~~~~~~
16+
17+
Section Level 4
18+
^^^^^^^^^^^^^^^
19+
20+
Section Level 5
21+
'''''''''''''''
22+
23+
The depth of each section level is determined by the order in which each
24+
decorator is encountered below. If you need an even deeper section level, just
25+
choose a new decorator symbol from the list here:
26+
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#sections
27+
And then add it to the list of decorators above.
28+
29+
.. _2021_cause_alzheimers_disease:
30+
31+
==============================
32+
Alzheimer's Disease (GBD 2021)
33+
==============================
34+
35+
.. contents::
36+
:local:
37+
38+
.. list-table:: Abbreviations
39+
:widths: 15 15 15
40+
:header-rows: 1
41+
42+
* - Abbreviation
43+
- Definition
44+
- Note
45+
* - AD
46+
- Alzheimer's Disease
47+
-
48+
* - YLD
49+
- Years Lived with Disability
50+
-
51+
* - YLL
52+
- Years of Life Lost
53+
-
54+
55+
Disease Overview
56+
++++++++++++++++
57+
58+
GBD 2021 Modeling Strategy
59+
++++++++++++++++++++++++++
60+
61+
Restrictions
62+
------------
63+
64+
The following table describes any restrictions in GBD 2021 on the
65+
effects of this cause (such as being only fatal or only nonfatal), as
66+
well as restrictions on the ages and sexes to which the cause applies.
67+
68+
.. list-table:: GBD 2021 Cause Restrictions
69+
:widths: 15 15 20
70+
:header-rows: 1
71+
72+
* - Restriction Type
73+
- Value
74+
- Notes
75+
* - Male only
76+
- False
77+
-
78+
* - Female only
79+
- False
80+
-
81+
* - YLL only
82+
- False
83+
-
84+
* - YLD only
85+
- False
86+
-
87+
* - YLL age group start
88+
- 40 to 44
89+
- age_group_id = 13
90+
* - YLL age group end
91+
- 95 plus
92+
- age_group_id = 235
93+
* - YLD age group start
94+
- 40 to 44
95+
- age_group_id = 13
96+
* - YLD age group end
97+
- 95 plus
98+
- age_group_id = 235
99+
100+
Vivarium Modeling Strategy
101+
++++++++++++++++++++++++++
102+
103+
For :ref:`Model 1 <2025_alzheimers_model_runs_table>` of the
104+
:ref:`Alzheimer's simulation <2025_concept_model_vivarium_alzheimers>`,
105+
we will model Alzheimer's disease as a simple SI model using GBD data
106+
for the cause "Alzheimer's disease and other dementias" (cause ID 543).
107+
108+
Cause Model Diagram
109+
-------------------
110+
111+
.. graphviz::
112+
113+
digraph AlzheimersDisease {
114+
rankdir=LR;
115+
S -> AD [label=i_alz]
116+
117+
}
118+
119+
.. list-table:: State Definitions
120+
:widths: 5 5 20
121+
:header-rows: 1
122+
123+
* - State
124+
- State Name
125+
- Definition
126+
* - S
127+
- Susceptible
128+
- Simulant does not have Alzheimer's disease or another dementia
129+
* - AD
130+
- Alzheimer's Disease
131+
- Simulant has Alzheimer's disease or another dementia
132+
133+
.. list-table:: Transition Definitions
134+
:widths: 5 5 20
135+
:header-rows: 1
136+
137+
* - Transition
138+
- Transition Name
139+
- Definition
140+
* - i_alz
141+
- Alzheimer's Incidence
142+
- Incidence rate of Alzheimer's disease and other dementias
143+
(incident cases per susceptible person-year)
144+
145+
Data Tables
146+
-----------
147+
148+
All data values are defined for a specified year, location, age group,
149+
and sex.
150+
151+
.. list-table:: Data Sources
152+
:widths: 20 30 25 25
153+
:header-rows: 1
154+
155+
* - Variable
156+
- Definition
157+
- Source or value
158+
- Notes
159+
* - prevalence_c543
160+
- Prevalence of Alzheimer's disease and other dementias
161+
- como
162+
-
163+
* - deaths_c543
164+
- Deaths from Alzheimer's disease and other dementias
165+
- codcorrect
166+
-
167+
* - population
168+
- Average population during specified year
169+
- get_population
170+
- Numerically equal to person-years. Often interpreted as population
171+
at year's midpoint (which is approximately equal to person-years
172+
if we think the midpoint rule with a single rectangle gives a good
173+
estimate of the area under the population curve).
174+
* - incidence_rate_c543
175+
- GBD's "total population incidence rate" for Alzheimer's disease
176+
and other dementias
177+
- como
178+
- Raw GBD value, different from "susceptible incidence rate"
179+
automatically calculated by Vivarium Inputs
180+
* - csmr_c543
181+
- Cause-specific mortality rate for Alzheimer's disease and other
182+
dementias
183+
- :math:`\frac{\text{deaths_c543}}{(\text{population}) \cdot (\text{1 year})}`
184+
- Calculated automatically by Vivarium Inputs
185+
* - emr_c543
186+
- Excess mortality rate for Alzheimer's disease and other dementias
187+
- :math:`\frac{\text{csmr_c543}}{\text{prevalence_c543}}`
188+
- Calculated automatically by Vivarium Inputs
189+
* - sequelae_c543
190+
- Sequelae of Alzheimer's disease and other dementias
191+
- Set of 3 sequelae: s452, s453, s454
192+
- Obtained from gbd_mapping.
193+
Sequela names are "Mild," "Moderate," or "Severe Alzheimer's
194+
disease and other dementias," respectively.
195+
* - :math:`\text{disability_weight}_s`
196+
- Disability weight of sequela :math:`s`
197+
- YLD Appendix
198+
- For reference, the values are:
199+
200+
- s452: 0.069 (0.046-0.099)
201+
- s453: 0.377 (0.252-0.508)
202+
- s454: 0.449 (0.304-0.595)
203+
* - :math:`\text{prevalence}_s`
204+
- Prevalence of sequela :math:`s`
205+
- como
206+
-
207+
208+
The following two tables describe the data needed for the cause model
209+
drawn in the previous section in terms of the data values in the above
210+
table.
211+
212+
.. list-table:: State Data
213+
:widths: 20 25 30 30
214+
:header-rows: 1
215+
216+
* - State
217+
- Measure
218+
- Value
219+
- Notes
220+
* - S
221+
- prevalence
222+
- 1 - prevalence_c543
223+
- Used for initial population at start of simulation
224+
* - S
225+
- birth prevalence
226+
- 1
227+
- Used for simulants born into the simulation
228+
* - S
229+
- excess mortality rate
230+
- 0
231+
- Added onto mortality hazard for susceptible simulants
232+
* - S
233+
- disability weight
234+
- 0
235+
- Used to calculate YLDs
236+
* - AD
237+
- prevalence
238+
- prevalence_c543
239+
- Used for initial population at start of simulation
240+
* - AD
241+
- birth prevalence
242+
- 0
243+
- Used for simulants born into the simulation
244+
* - AD
245+
- excess mortality rate
246+
- emr_c543
247+
- Added onto mortality hazard for simulants with AD
248+
* - AD
249+
- disability weight
250+
- :math:`\sum_\limits{s\in \text{sequelae_c543}}
251+
\text{disability_weight}_s \cdot \text{prevalence}_s`
252+
- Prevalence-weighted average disability weight over sequelae,
253+
computed automatically by Vivarium Inputs. Used to calculate
254+
YLDs.
255+
* - ALL
256+
- cause specific mortality rate
257+
- csmr_c543
258+
- Subtracted from all-cause mortality hazard to get cause-deleted
259+
mortality hazard in all cause states
260+
261+
.. list-table:: Transition Data
262+
:widths: 10 10 10 20 30
263+
:header-rows: 1
264+
265+
* - Transition
266+
- Source State
267+
- Sink State
268+
- Value
269+
- Notes
270+
* - i_alz
271+
- S
272+
- AD
273+
- :math:`\frac{\text{incidence_rate_c543}}{\text{1 - prevalence_c543}}`
274+
- Compute susceptible population incidence rate from GBD's "total
275+
population incidence rate." Conversion is automatic when using
276+
the get_measure function in Vivarium Inputs.

docs/source/models/causes/neonatal/index.rst

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,11 @@ unit time.
208208
Modeling Strategy
209209
+++++++++++++++++
210210

211-
The neonatal death model requires only the probability of death (aka "mortality risk") for the early and late neonatal time periods. Rather than using GBD mortality rates and converting them into probability of deaths, we will use mortality risk as direct input data into our model. We will calculate mortality risk input data as age-specific death counts divided by live birth counts from GBD.
211+
The neonatal death model requires only the probability of death (aka "mortality risk") for the early and late neonatal time periods.
212+
These mortality risks are age-group-, sex-, and location-specific.
213+
For brevity, sex and location subscripts are omitted in all equations.
214+
215+
Rather than using GBD mortality rates and converting them into probability of deaths, we will use mortality risk as direct input data into our model. We will calculate mortality risk input data as age-specific death counts divided by live birth counts from GBD.
212216

213217
Note that this strategy does not require any conversion between rates to probabilities NOR does it require any scaling to the duration of the age group. The mortality risk calculated as described below already represents the probability of dying within a neonatal age group and can be used directly as such in the simulation.
214218

@@ -231,7 +235,8 @@ and for a given cause of death:
231235
232236
Note that this strategy was updated in May of 2025 from a prior strategy of converting GBD mortality rates to probabilities. `The pull request that updated this strategy can be found here for reference. <https://github.com/ihmeuw/vivarium_research/pull/1654>`_ This strategy update was pursued following verification and validation issues in neonatal mortality and an exploration of potential solutions in model runs 6.1 through 6.4. Ultimately, a change from mortality rates to mortality risk was preferred given that it is the more policy relevant measure in the context of neonates, and accurately apportioning person time alive within the neonatal age group given the input data available to us was a challenge we judged to be unnecessary.
233237

234-
The calculation of :math:`\text{ACMRisk}_i` (the all-cause mortality risk for a single simulant, :math:`i`) is a bit complicated, however. We begin with a population ACMRisk and use the LBWSG PAF to derive a risk-deleted ACMRisk to which we can then apply the relative risk of LBWSG matching any risk exposure level. Mathematically this is achieved by the following formula:
238+
The calculation of :math:`\text{ACMRisk}_i` (the all-cause mortality risk for a single simulant, :math:`i`) is a bit complicated, however. We begin with a population ACMRisk and use the LBWSG PAF to derive a risk-deleted ACMRisk to which we can then apply the relative risk of LBWSG matching any risk exposure level. Mathematically this is achieved by the following formula.
239+
Starting with this equation, we omit age group subscripts for brevity; all quantities are still age-, sex-, and location-specific.
235240

236241
.. math::
237242
\begin{align*}
@@ -253,7 +258,6 @@ where :math:`\text{BW}_i` and :math:`\text{GA}_i` are the birth weight and gesta
253258
and :math:`\text{CSMRisk}_{i}^{k}` is the cause-specific mortality risk for subcause :math:`k` for simulant :math:`i` (both detailed in the `Modeled Subcauses`_
254259
linked from this page).
255260

256-
257261
In addition to determining which simulants die due to any cause, we also need to determine which subcause is underlying the death. This is done by sampling from a categorical distribution obtained by renormalizing the CSMRisks:
258262

259263
.. math::
@@ -349,7 +353,10 @@ Data Tables
349353
- GBD + assumption about relative risks + intervention model effects
350354
- see subcause models for details
351355

352-
**Details of the** :math:`\text{PAF}_\text{LBWSG}` **calculation:**
356+
.. _details_of_the_lbwsg_paf_calculation:
357+
358+
Details of the LBWSG PAF calculation
359+
++++++++++++++++++++++++++++++++++++
353360

354361
As stated in the table above, :math:`\text{PAF}_\text{LBWSG}` is the population attributable fraction of all-cause mortality for low birth weight and short gestation. It is computed so that PAF = 1 - 1 / E(:math:`\text{RR}_{\text{BW},\text{GA}}`) from the capped interpolated relative risk function (with expectation taken over the distribution of LBWSG exposure).
355362

@@ -374,6 +381,8 @@ Using the `LBWSG PAF calculation simulation <https://github.com/ihmeuw/vivarium_
374381

375382
So,
376383

384+
.. _details_of_the_lbwsg_paf_calculation_equation:
385+
377386
.. math::
378387
379388
E(\text{RR})_\text{population} = \frac{\sum_{\text{cat}} E(\text{RR})_\text{cat} \times p^\text{birth}_\text{cat} \times \frac{n_\text{cat} - n^\text{deaths}_\text{cat}}{n_\text{cat}}}{\sum_{\text{cat}} p^\text{birth}_\text{cat} \times \frac{n_\text{cat} - n^\text{deaths}_\text{cat}}{n_\text{cat}}}

0 commit comments

Comments
 (0)