Nutrition Optimization

1.0 Overview

This document is the overall page for the Nutrition Optimization simulation and contains information that relates to all modeled subcomonents included in the simulation.

Documents that contain information specific to the subcomponents of this simulation can be found here:

2.0 Modeling aims and objectives

Objective: For a given fiscal envelope, determine the optimal funding allocation across select nutrition-related intervention products for maternal and child health. “Optimal” is defined with respect to some specified outcome such as the funding allocation that minimizes DALYs or maximizes the number of alive, non-stunted children.

Note

We must be careful in optimizing for “minimizing” the prevalence of some risk such as child growth failure. This is because prevalence of such risks could be decreased via decreasing incidence (positive health impact) or via increasing risk-related mortality (negative health impact). That is why we choose to maximize the number of alive non-stunted children rather than minimize the prevalence of child growth failure.

Note that an alternative strategy here would be to minimize DALYs due to CGF. It is important to note that the former straegy would favor interventions that increase fertility even in the absence of decreased CGF exposure. When modeling interventions that have the potential to affect fertility (either directly, through averted pregnancy-related deaths resulting in future births, or through averted stillbirths or miscarriages), it is important to think through the implications of the optimization objective as it relates to fertility.

Todo

Detail strategy for how to handle stillbirths in optimization objective. Note that assigning DALYs to stillbirths is not acceptable practice by convention.

2.1 General modeling strategy

2.1.1 Conceptualizing “mixed” intervention coverage

To achieve the general modeling objective of determining the most cost effective combination of interventions for a given budget size. When we think about “combinations of interventions,” it is important to distinguish between two modes in which coverage of more than one intervention may occur. For example, imagine a scenario in which we have 50% population coverage of intervention A and 50% population coverage of intervention B. Any of the following could be true:

  1. Combined intervention coverage among the same individuals: 50% of the population is covered by intervention A and B, 50% of the population is covered by neither intervention A nor B

  2. Combined intervention coverage among separate individuals: 50% of the population is covered by intervention A and not B, 50% of the population is covered by intervention B and not A

  3. Some combination of 1 and 2

In the case of the first situation:

There may be important interactions between the simultaneous coverage of intervention A and B in the same subpopulation. For example:

  • An infant who was covered by antenatal supplementation may survive the neonatal period due to associated improvements to their LBWSG exposure and therefore survive to benefit from SQLNS supplementation later in life

  • A child who may have benefitted from SAM treatment alone may no longer need to be treated for SAM if they are covered by MAM treatment as well as SAM treatment

  • Etc.

These interactions may be difficult to quantify directly and therefore we will plan to estimate the effect of joint coverage of multiple interventions on maternal and child health from within our simulation.

In the case of the second situation:

For our purposes, we assume that the situation described in point #2 above is equivalent to the weighted average of 50% an identical population with 100% coverage of intervention A and 50% an identical population with 100% coverage of intervention B.

NOTE: see a discussion of the potential limitations of this assumption as it relates to simulated common random numbers in the 6.0 Limitations section.

As this assumption requires only a weighted average, we can perform this calculation outside of our simulation so long as we have quantified the impacts of intervention A and B within our simulation already.

Todo

Create and link to notebook that shows how this strategy compares to actual simulated results

In the case of the third situation:

Then, we can combine our strategies for the first two situations so that we may estimate more complex combinations of joint intervention coverage (for example: 50% of the population covered by A and B, 25% covered by A, 25% covered by neither, for total population coverage of 75% for A, 50% for B).

In this case, we would simulate 3 scenarios (1: 100% coverage of A and B, 2: 100% coverage of A, 3: no coverage) and then estimate the overall impact of the described intervention coverage combination as 0.5 * scenario_1 + 0.25 * scenario_2 + 0.25 * scenario_3.

2.2 Emulator Design

The emulator is designed to take in the results from the simulation and costing functions and output an optimized approach for each budget. Below is more details about how the emulator works, its input parameters, and limitations.

2.2.1 General Emulator Strategy

To find optimized results, we will:

  1. Simulate a scenario for each possible combination of modeled interventions either at 0% or 100% coverage.

  2. Define cost functions for each intervention.

  3. External to vivarium, pair the simulated results of these scenarios with the intervention costing function and solve for combination of scenarios that maximizes health impact.

Further details can be found in the below sections.

Step 1 in this process is detailed in the pregnancy and child concept model documents.

2.2.2 Input Parameters

We expect that the emulator will have the following input parameters that are configurable for each run:

Input Parameters

Parameter

Options to include

Notes

Results directory

This will include results for only one location. The emulator will be rerun each location.

Location ID

Accepts exactly one location ID

Optimization Measure

Deaths, DALYs, cases averted (stunting for example), total population (alive, not stunted, etc.)

Population to optimize for

Maternal, child, all

This only applies to some measures e.g., deaths could be any population, stunting cases averted is by definition for children only.

Budget(s)

A set of budgets or single budget to optimize for

We will plan to include some “help” for selecting a budget such as the cost of maximizing all interventions or the current baseline budget

Stillbirth inclusion

Stillbirths included in YLLs and deaths

Mean draw vs individual draws

Either finds results only for the mean of draws OR for individual draws

We have considered some other possible input parameters, but at this time are planning to have these be pre-set in the emulator. We can choose to change these to be configurable on each run if the need arises.

Additional parameters:

  1. Rate vs total population. Currently we will generate results for the total population. E.g., all deaths averted in Ethiopia.

  2. Additional constraints in the optimization. E.g., running the emulator allowing for operationally infeasible cases and not allowing for them.

  3. Changing saturation coverage limits.

Note

Stillbirths can either be included or excluded from YLLs, DALYs and deaths. The question of including stillbirths as a negative outcome is complex. Traditionally, stillbirths are not seen as “deaths” and therefore don’t contribute to outcomes.

However, pregnancy interventions are known to decrease the stillbirth rate, leading to more live births. These children are often vulnerable to infections and deaths in early life. Therefore, results can sometimes be misleading if a child that would have been stillborn was born alive but died quickly. If stillbirths are not counted as a death, then it might appear like pregnancy interventions increase deaths.

Therefore we have an adjustable parameter in the emulator where stillbirths can be included or not included in the counts for deaths, YLLs and YLDs.

2.2.3 Constraints and Assumptions

Constraints:

  • Total cost of resulting combination of interventions cannot exceed some set budget

  • Coverage of any one intervention cannot exceed that intervention-specific saturation coverage level

  • Avoid operationally infeasible coverage recommendations (for example: separate antenatal care intervention product based on whether child nutrition saturation coverage has already been maxxed out)

Assumptions:

  • All interventions have the same coverage propensities. See the 6.0 Limitations section for a discussion of this assumption.

2.2.4 Emulator Versions

Emulator Versions

Version Number

Description

Link

Notes

1

Emulator with two step optimization

Emulator version 1

We have not progressed the two step optimization version at this time

2

Replicate results with single step optimization

Emulator version 2

Successfully replicated prior results

3

Removing hard coded information

Emulator version 3

4

Converted to .py files

Emulator version 4 and py files version 4

5

Adding maternal interventions

Emulator version 5 and py files version 5

6

Allowing optimization to different parameters

Emulator version 5 and py files version 5

7

Add in stillbirths, updating to wave 2 data, multiple locations, improved figures

Emulator version 7 and py files for version 7.

2.3 Submodels

Wave I outstanding tasks for costing and emulator

Task

Dependencies

RT person

Note

1: Confirm mixed coverage approach

Ali

Completed

2: Emulator design choice

Full team

Completed

3: Clean emulator and remove hardcoded information

Syl

Completed

4: Allow for optimization to multiple outcomes

Syl

Example: deaths, DALYs, SAM cases

5: Add maternal interventions

Syl

Completed

6: Test for robustness to different initial values

Syl

Completed

7: Test non-linear cost functions

Some testing, decided against moving forward here

8: Decide on costing approach and priorities

Syl and Latera

Wave II outstanding tasks for costing and emulator

Task

Dependencies

RT person

Note

1: Literature search for cost information

All wave II tasks are dependent on 8 above

TBD

2: Identify and request any cost datasets

TBD

3: Data analysis got costing

Dependent on what data is identified

TBD

4: Finalizaing cost functions

TBD

5: Integrate costs into emulator

TBD

3.0 Concept model and submodels

Todo

Insert colorful full concept model

4.0 2021 Data Notes

For all calls in the following table, relevant values for:

  • age_group_id

  • location_id

  • sex_id

  • gbd_id

Will need to be filled in as appropriate.

Also, the following packages must be imported as so:

from get_draws.api import get_draws
from db_queries import get_population, get_covariate_estimates

As of 10/16/2023:

GBD 2021 Data Update Needs

Category

Details

Status

Call

Note

Demographics

Used for age structure at initialization, to convert codcorrect results from counts to rates

Ready

get_population(gbd_round_id=7, #2021

year_id=2021,

decomp_step='iterative',

run_id=359)

Run ID obtained here

Mortality

Deaths to be used to calculate CSMRs

Ready

get_draws(gbd_round_id=7,

year_id=2021,

source='codcorrect',

gbd_id_type='cause_id',

gbd_id=CAUSE_IDS,

decomp_step='step3',

version_id=363,

measure_id=1)

Returns counts that will need to be converted to rate. Codcorrect version ID obtained here

Incidence

Incidence rates

Ready

get_draws(gbd_round_id=7,

year_id=2021,

source='como',

gbd_id_type='cause_id',

gbd_id=CAUSE_IDS,

decomp_step='iterative',

version_id=1469,

measure_id=6)

Returns per person-year rate. Final COMO version ID obtained here

Risk exposure

Hemoglobin mean/standard deviation

Ready

get_draws(gbd_round_id=7,

year_id=2021,

source='epi',

gbd_id_type='modelable_entity_id',

gbd_id=MEID,

decomp_step='iterative')

Risk exposure

LBWSG and CGF

Already updated for CGF, ready for LBWSG

get_draws(gbd_round_id=7,

year_id=2021,

source='exposure',

gbd_id_type='rei_id',

gbd_id=REI_IDS,

decomp_step='iterative')

Relative risk

Hemoglobin on maternal disorders, LBWSG and CGF

Already updated for CGF, ready for hemoglobin and LBWSG

get_draws(gbd_round_id=7,

year_id=2021,

source='rr',

gbd_id_type='rei_id',

gbd_id=REI_IDS,

decomp_step='iterative')

Covariates

ASFR, SBR

Ready

get_covariate_estimates(gbd_round_id=7,

year_id=2021,

decomp_step='iterative',

covariate_id=COVARIATE_ID)

Additional dependencies:

5.0 Model run requests

Note

This table refers to model runs for all subpopulations included in the nutrition optimization simulation (pregnancies, infants, and kids). Runs specific to each subpopulation for V&V of these submodels will be managed on their respective pages.

Model run requests

Run

Description

Scenarios

Specification modifications

Stratificaction modifications

Note

6.0 Limitations

Todo

Discuss CRN issue Zeb raised… does it matter that for “situation 2” we are taking data from simulated population of some set size under various different intervention regimens (due to CRNs, this is the “same” identical population across all our scenarios with differing intervention coverage) and then using several “copies” of this population to produce a weighted average to represent a hypothetical mixture of scenarios among a population of the same size as our initial simulated population. Note that for a 50/50 combination we are in effect compressing data from say 100,000 individuals under intervention A and intervention B scenarios to represent 50,000 individuals respectively in our resulting “mixed” coverage scenario. How does CRN modify the impact of this assumption?

Also discuss fixed coverage propensity assumption

7.0 References/Other

Abbreviations

Abbreviation

Definition

IFA

Iron and folic acid

MMS

Multiple micronutrient supplementation

BEP

Balanced energy protein

RUSF

Ready-to-use supplementary food

RUTF

Ready-to-use therapeutic food

SQ-LNS

Small quantity lipid-based nutrient supplement

SAM

Severe acute malnutrition

MAM

Moderate acute malnutrition

ANC

Antenatal care

CMAM

Community management of acute malnutrition