-
Notifications
You must be signed in to change notification settings - Fork 0
05. Adherence and CASM
CASM stands for constellation of alcohol, substance, and mood-related. These are health or behavioral conditions that make it harder for people to stick to treatments like:
- HIV medication (ART, PrEP)
- Chronic disease care (e.g., diabetes, hypertension)
In MIGHTI, we model how these conditions reduce adherence and how treating them can improve health outcomes.
The following seven CASM conditions are modeled:
- Depression (Major Depressive Disorder)
- Alcohol use disorder
- Anxiety (Anxiety Disorder)
- Chronic pain
- Tobacco use disorder
- Opioid use disorder
- Stimulant use disorder
Each condition increases the chance that a person will miss or stop treatment.
MIGHTI uses a three-component adherence pipeline:
- AdherenceEngine: Computes adherence from CASM and SDoH factors
- ARTAdherenceDisruptor: Causes ART dropout based on low adherence
- InterventionAdherenceDisruptor: Scales intervention effectiveness by adherence
Adherence is calculated using a multiplicative model where each CASM condition and SDoH factor multiplies the adherence value:
- Start with perfect adherence (1.0) for each person
- For each CASM condition the person has, multiply adherence by the condition's relative factor
- For each SDoH factor that applies, multiply adherence by the SDoH relative factor
- Final adherence is clipped to [0, 1]
Example:
# Person has depression and unstable housing
adherence = 1.0
adherence *= 0.45 # Depression factor (1/2.21)
adherence *= 0.90 # Unstable housing factor
# Final adherence = 0.405ART Dropout (ARTAdherenceDisruptor):
- People with lower adherence have higher probability of dropping out of ART
- Dropout probability =
base_dropout * (1 - adherence)
Intervention Effectiveness (InterventionAdherenceDisruptor):
- Treatment effectiveness is scaled by adherence
effective_efficacy = base_efficacy * adherence
This ensures that simulated outcomes reflect real-world challenges.
Each CASM condition has a relative adherence factor derived from published odds ratios:
| Condition | Odds Ratio (Lower Adherence) | Relative Factor |
|---|---|---|
| Depression | 2.21 | 0.45 (1/2.21) |
| Alcohol use | 1.41 | 0.71 (1/1.41) |
| Anxiety | 2.04 | 0.49 (1/2.04) |
| Chronic pain | 1.34 | 0.75 (1/1.34) |
| Tobacco use | 1.18 | 0.85 (1/1.18) |
| Opioid use | 1.18 | 0.85 (1/1.18) |
| Stimulant use | 1.81 | 0.55 (1/1.81) |
These factors are defined in mighti/adherence.py as CASM_REL_FACTORS.
In addition to CASM conditions, SDoH factors also affect adherence:
| SDoH Factor | Relative Factor |
|---|---|
| Unstable housing | 0.90 |
| Poor social context | 0.85 |
| Low education | 0.92 |
| Poor economic situation | 0.80 |
| Poor healthcare access | 0.88 |
These are defined in mighti/adherence.py as SDOH_REL_FACTORS.
Treating a CASM condition can improve adherence through remission or recovery.
For example:
- If a person with depression receives successful treatment and remits,
- Their adherence to HIV care or diabetes care increases (spillover effect)
- This happens automatically when the condition remits, as
AdherenceEnginerecalculates adherence each timestep
We use data from published studies, such as Bershteyn et al, Lancet HIV 2023, to define how much each condition affects adherence. Odds ratios are converted to relative factors using the formula: relative_factor = 1 / odds_ratio.
To use the adherence system, add the AdherenceEngine module to your simulation:
import mighti as mi
# Add adherence engine
adherence_engine = mi.AdherenceEngine()
# Add ART adherence disruptor (optional, for ART dropout)
art_adherence_disruptor = mi.ARTAdherenceDisruptor(
base_dropout=0.10,
base_dropout_noaud=0.001
)
# Add to simulation
sim = ss.Sim(
modules=[adherence_engine],
connectors=[art_adherence_disruptor],
...
)The AdherenceEngine will automatically:
- Check for CASM conditions in
people.states(e.g.,majordepressivedisorder.affected) - Check for SDoH states (e.g.,
neighbourhood_situation) - Calculate and store adherence in
people.states['adherence']
The CASM module helps MIGHTI simulate realistic barriers to care by:
- Assigning lower adherence to people with challenging conditions using a multiplicative model
- Incorporating both CASM conditions and SDoH factors
- Allowing interventions to improve those conditions (which automatically improves adherence)
- Capturing spillover effects where better mental health improves physical health outcomes