Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 42 additions & 14 deletions docs/source/models/causes/neonatal/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -121,13 +121,17 @@ Assumptions and Limitations

- Preterm must be split into with and without respiratory distress syndrome (RDS) outside of GBD, since GBD does not distinguish preterms deaths with and without RDS.

We "cap" LBWSG RR values at a certain value in an attempt to eliminate the occurance of individual all-cause mortality risk values greater than 1 on in our simulation (and therefore avoiding an associated underestimation of neonatal mortality) while also maintaining:
- We assume the LBWSG RR values represent both the correlation between LBWSG exposure and all-cause neonatal mortality at baseline as well as the causal impact of LBWSG on cause-specific mortality for causes affected by LBWSG

- The relative difference in mortality risk values between LBWSG exposures that are not capped, and
- We assume that the LBWSG exposure distribution prior to applying intervention effects is the same as the LBWSG exposure distribution at baseline. These distributions will slightly diverge due to the baseline calibration of the :ref:`oral iron intervention <oral_iron_antenatal>` (and any other future modeled interventions that are present at baseline and affect LBWSG exposure), but should be roughly similar.

- Mortality risk values very close to 1 for the individuals with the highest risk LBWSG exposures
- We "cap" LBWSG RR values at a certain value in an attempt to eliminate the occurrence of individual all-cause mortality risk values greater than 1 on in our simulation (and therefore avoiding an associated underestimation of neonatal mortality) while also maintaining:

However, in this implementation, we do not consider how modeled interventions may further increase individual-level mortality risk beyond the modifications from the LBWSG risk factor, so it is possible that we continue to have some mortality risk values greater that 1 in our simulation.
- The relative difference in mortality risk values between LBWSG exposures that are not capped, and

- Mortality risk values very close to 1 for the individuals with the highest risk LBWSG exposures

However, in this implementation, we do not consider how modeled interventions may further increase individual-level mortality risk beyond the modifications from the LBWSG risk factor, so it is possible that we continue to have some mortality risk values greater that 1 in our simulation.

Cause Model Decision Graph
++++++++++++++++++++++++++
Expand Down Expand Up @@ -235,28 +239,50 @@ and for a given cause of death:

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.

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.
The calculation of :math:`\text{ACMRisk}_i` (the all-cause mortality risk for a single simulant, :math:`i`) is a bit complicated, however. First, we must decompose the population ACMRisk into two groups: causes affected by the :ref:`LBWSG risk factor <2021_risk_effect_lbwsg>` (:math:`\sum_{\text{c} \in \text{affected}} \text{CSMRisk}_c`) and those unaffected by it (:math:`\sum_{\text{c} \in \text{affected}} \text{CSMRisk}_c`). This decomposition allows us to apply the effects of improved LBWSG exposures to the group of causes affected by LBWSG only (by using the LBWSG PAF to derive a risk-deleted mortality risk and multiplying by the relative risk of LBWSG matching any risk exposure level) without modeling corresponding changes to causes unaffected by LBWSG. We do still model some effect of LBWSG to the group of causes unaffected by LBWSG, though. This strategy takes advantage of the fact that the LBWSG RR values were derived using all-cause mortality data, but are only applied *causally* to a subset of affected causes. We assume that the LBWSG RR values can represent the baseline *correlation* between LBWSG exposures and all cause mortality as they are derived from all-cause mortality data without adjustment for confounding. We also assume that these LBWSG RR values represent the causal effect of LBWSG on the subset of specific affected causes (in line with GBD assumptions). So by applying RRs associated with pre-intervention modified LBWSG exposure to unaffected causes and RRs associated with post-intervention modified LBWSG exposure to affected causes, our simulation will both:

- apply the change in mortality risk to the causes affected by LBWSG associated with intervention impact on LBWSG exposures that is in line with GBD assumptions,
- and also reflect the expected correlation between LBWSG exposures and mortality at baseline (improving the accuracy of background mortality rates across the LBWSG exposure distribution, which may influence our estimates of impact for interventions that are targeted by LBWSG exposure).

To avoid the need to write out data between simulated scenarios for ease of implementation, we will assume that pre-intervention modified LBWSG exposure represents baseline LBWSG exposure.

Mathematically this is achieved by the following formula.
Starting with this equation, we omit age group subscripts for brevity; all quantities are still age-, sex-, and location-specific.

.. math::
\begin{align*}
\text{ACMRisk}_{\text{BW},\text{GA}} &= \text{ACMRisk} \times (1 - \text{PAF}_{\text{LBWSG}}) \times \text{RR}_{\text{BW},\text{GA}},
\text{ACMRisk}_{\text{BW},\text{GA}}^{\text{BW}^0,\text{GA}^0} &= \sum_{\text{c} \in \text{affected}} \text{CSMRisk}_c \times (1 - \text{PAF}_{\text{LBWSG}}) \times \text{RR}_{\text{BW},\text{GA}} \\
& + (\text{ACMRisk} - \sum_{\text{c} \in \text{affected}} \text{CSMRisk}_c) \times (1 - \text{PAF}_{\text{LBWSG}}) \times \text{RR}_{\text{BW}^0,\text{GA}^0}
\end{align*}

where :math:`\text{ACMRisk}_{\text{BW},\text{GA}}` is the all-cause mortality risk for a population with birth weight :math:`\text{BW}` and gestational age :math:`\text{GA}`, :math:`\text{ACMRisk}` is the all-cause mortality risk for the total population in one of the neonatal age groups (i.e., :math:`\text{ACMRisk}` equals :math:`\text{ACMRisk}_\text{ENN}` or :math:`\text{ACMRisk}_\text{LNN}` as defined above), :math:`\text{PAF}_{\text{LBWSG}}` is the population attributable fraction for LBWSG, and :math:`\text{RR}_{\text{BW},\text{GA}}` is the relative mortality risk for a specific birth weight :math:`\text{BW}` and gestational age :math:`\text{GA}`.
Where:

To obtain the ACMRisk for a specific simulant (:math:`\text{ACMRisk}_i`), we subtract off the *population* CSMRisks for each modeled subcause for the birth weight and gestational age of the simulant, and then add back in the (potentially pipeline-modified) *individual* CSMRisks for the specific simulant, which might differ from baseline due to intervention coverage:
- :math:`\text{ACMRisk}_{\text{BW},\text{GA}}^{\text{BW}^0,\text{GA}^0}` is the all-cause mortality risk for a population with a pre-intervention-modified birth weight of :math:`\text{BW}^0` and gestational age :math:`\text{GA}^0` and a post-intervention-modified birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}`,
- :math:`\sum_{\text{c} \in \text{affected}} \text{CSMRisk}_c` is the sum of the cause-specific mortality risk values of all causes affected by LBWSG (see the :ref:`LBWSG risk effects document for a list of affected causes <2021_risk_effect_lbwsg>`)
- :math:`\text{ACMRisk}` is the all-cause mortality risk for the total population in one of the neonatal age groups (i.e., :math:`\text{ACMRisk}` equals :math:`\text{ACMRisk}_\text{ENN}` or :math:`\text{ACMRisk}_\text{LNN}` as defined above),
- :math:`\text{PAF}_{\text{LBWSG}}` is the population attributable fraction for LBWSG,
- :math:`\text{RR}_{\text{BW},\text{GA}}` is the relative mortality risk for a specific birth weight :math:`\text{BW}` and gestational age :math:`\text{GA}` according to the exposure values in the current scenario, and
- :math:`\text{RR}_{\text{BW}^0,\text{GA}^0}` is the relative mortality risk for a specific birth weight :math:`\text{BW}` and gestational age :math:`\text{GA}` according to the exposure value prior to the application of any intervention effects on LBWSG exposure.

To obtain the ACMRisk for a specific simulant (:math:`\text{ACMRisk}_i`), we subtract off the *population* CSMRisks for each modeled subcause :math:`k` for the birth weight and gestational age of the simulant, and then add back in the (potentially pipeline-modified) *individual* CSMRisks for the specific simulant, which might differ from baseline due to intervention coverage:

.. math::
\begin{align*}
\text{ACMRisk}_i &= \text{ACMRisk}_{\text{BW}_i,\text{GA}_i} - \sum_k \text{CSMRisk}_{\text{BW}_i,\text{GA}_i}^{k}
+ \sum_k \text{CSMRisk}_{i}^{k},
\text{ACMRisk}_i &= \text{ACMRisk}_{\text{BW}_i,\text{GA}_i}^{\text{BW}_i^0,\text{GA}_i^0} - \sum_{k \in \text{affected}} \text{CSMRisk}_{\text{BW}_i,\text{GA}_i}^{k} \\
& - \sum_{k \in \text{unaffected}} \text{CSMRisk}_{\text{BW}_i^0,\text{GA}_i^0}{k}
+ \sum_k \text{CSMRisk}_{i}^{k}
\end{align*}

where :math:`\text{BW}_i` and :math:`\text{GA}_i` are the birth weight and gestational age for simulant :math:`i`,
:math:`\text{CSMRisk}_{\text{BW}_i,\text{GA}_i}^{k}` is the cause-specific mortality risk for subcause :math:`k` for a population with the same gestational age and birth weight as this simulant,
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`_
linked from this page).
where:

- :math:`\text{BW}_i` and :math:`\text{GA}_i` are the birth weight and gestational age for simulant :math:`i` after intervention effects have been applied to LBWSG exposure,
- :math:`\text{BW}_i^0` and :math:`\text{GA}_i^0` are the birth weight and gestational age for simulant :math:`i` prior to intervention effects being applied to LBWSG exposure,
- :math:`\text{CSMRisk}_{\text{BW}_i,\text{GA}_i}^{k}` is the cause-specific mortality risk for subcause :math:`k` that is affected by LBWSG (according to the :ref:`LBWSG risk effects document <2021_risk_effect_lbwsg>`) for a population with the same gestational age and birth weight as this simulant (after intervention effects have been applied to that simulant's BW and GA exposures),

- Note that `Modeled Subcauses`_ preterm birth, neonatal sepsis, and neonatal encephalopathy are all affected by the LBWSG risk factor

- :math:`\text{CSMRisk}_{\text{BW}_i^0,\text{GA}_i^0}^{k}` is the cause-specific mortality risk for subcause :math:`k` that is unaffected by LBWSG (according to the :ref:`LBWSG risk effects document <2021_risk_effect_lbwsg>`) for a population with the same gestational age and birth weight as this simulant before intervention effects have been applied to that simulant's BW and GA exposures,
- 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`_ linked from this page).

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:

Expand Down Expand Up @@ -411,5 +437,7 @@ Neonatal mortality risk (due to all causes and at the cause-specific level) in s

Relative Risk of neonatal death at specific categories of LBWSG exposure should be within 10% of same ratio derived from GBD. (We don't expect it to match exactly because of (1) our interpolation of the RRs, and (2) we use a constant mortality hazard at each BW-GA level, rather than the GBD's more complex model.)

Using the interactive simulation, verify that other causes mortality (and/or any future modeled unaffected subcauses) varies by LBWSG exposure but does not change in a scenario with added coverage of a LBWSG-affecting intervention such as IFA/MMS or IV iron. Additionally, verify that mortality due to modeled affected causes (including preterm, sepsis, and encephalopathy) varies as expected according to LBWSG exposure and is appropriately modified by new LBWSG-affecting intervention coverage.

References
----------
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ The formula is:

where
:math:`\text{CSMRrisk}` is the cause-specific mortality risk for encephalopathy,
:math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}`, and :math:`Z` is a normalizing constant selected so that :math:`\int_{\text{BW}} \int_{\text{GA}} \text{RR}_{\text{BW},\text{GA}} \cdot Z = 1`.
:math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}` (after intervention effects have been applied), and :math:`Z` is a normalizing constant selected so that :math:`\int_{\text{BW}} \int_{\text{GA}} \text{RR}_{\text{BW},\text{GA}} \cdot Z = 1`.

.. note::
the choice to use :math:`\text{RR}_{\text{BW},\text{GA}}` in this equation is essentially arbitrary, and it could be replaced by any other nonnegative "weight function" :math:`w(\text{BW},\text{GA})` as long it doesn't lead to a negative "other causes" mortality risk. But with this choice, :math:`Z` is equal to the :math:`1-\text{PAF}` of LBWSG on all-cause mortality.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/models/causes/neonatal/neonatal_sepsis.rst
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ The formula is:

where
:math:`\text{CSMRisk}` is the cause-specific mortality risk for sepsis,
:math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}`, and :math:`Z` is a normalizing constant selected so that :math:`\int_{\text{BW}} \int_{\text{GA}} \text{RR}_{\text{BW},\text{GA}} \cdot Z = 1`.
:math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}` (after intervention effects have been applied), and :math:`Z` is a normalizing constant selected so that :math:`\int_{\text{BW}} \int_{\text{GA}} \text{RR}_{\text{BW},\text{GA}} \cdot Z = 1`.

.. note::
the choice to use :math:`\text{RR}_{\text{BW},\text{GA}}` in this equation is essentially arbitrary, and it could be replaced by any other nonnegative "weight function" :math:`w(\text{BW},\text{GA})` as long it doesn't lead to a negative "other causes" mortality risk. But with this choice, :math:`Z` is equal to the :math:`1-\text{PAF}` of LBWSG on all-cause mortality.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/models/causes/neonatal/preterm_birth.rst
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ For both preterm subcauses, the formula is:
where :math:`k` is the subcause of interest (preterm birth with or without RDS),
:math:`\text{CSMRisk}` is the cause-specific mortality risk for preterm birth complications,
:math:`p_{\text{preterm}}` is the prevalence of preterm (gestational age < 37 weeks) at the *beginning* of the age group,
:math:`f_k` is the fraction of preterm deaths due to subsubcause :math:`k` (with or without RDS), :math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}`, and :math:`Z` is a normalizing constant selected so that :math:`E[\text{RR}_{\text{BW,GA}} | \text{GA}<37] \cdot Z = 1`. Solving for :math:`Z` gives :math:`Z = 1 / E[\text{RR}_{\text{BW,GA}} | \text{GA}<37]`.
:math:`f_k` is the fraction of preterm deaths due to subsubcause :math:`k` (with or without RDS), :math:`\text{RR}_{\text{BW},\text{GA}}` is the relative risk of all-cause mortality for a birth weight of :math:`\text{BW}` and gestational age of :math:`\text{GA}` (after intervention effects have been applied), and :math:`Z` is a normalizing constant selected so that :math:`E[\text{RR}_{\text{BW,GA}} | \text{GA}<37] \cdot Z = 1`. Solving for :math:`Z` gives :math:`Z = 1 / E[\text{RR}_{\text{BW,GA}} | \text{GA}<37]`.

.. note::

Expand Down