Skip to content

05. Adherence and CASM

Nao Yamamoto edited this page Dec 17, 2025 · 2 revisions

What is 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.


What Conditions Are Included?

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.


How It Works in the Model

MIGHTI uses a three-component adherence pipeline:

  1. AdherenceEngine: Computes adherence from CASM and SDoH factors
  2. ARTAdherenceDisruptor: Causes ART dropout based on low adherence
  3. InterventionAdherenceDisruptor: Scales intervention effectiveness by adherence

Step 1: Calculate Adherence (AdherenceEngine)

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.405

Step 2: Apply Adherence Effects

ART 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.


CASM Relative Factors

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.


Social Determinants of Health (SDoH) 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 CASM Conditions

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 AdherenceEngine recalculates adherence each timestep

Where Do the Numbers Come From?

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.


Using Adherence in Your Simulation

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']

Summary

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

Clone this wiki locally