Skip to content

Commit 9769357

Browse files
Merge pull request #1741 from ihmeuw/alzheimers-model-2
Alzheimer's model 2 (population model)
2 parents 3822e6a + 2a28789 commit 9769357

2 files changed

Lines changed: 370 additions & 11 deletions

File tree

docs/source/models/concept_models/vivarium_alzheimers/concept_model.rst

Lines changed: 68 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -206,20 +206,21 @@ The basic plan for the design of the simulation is as follows:
206206

207207
.. list-table:: Default Simulation Parameter Specifications
208208
:header-rows: 1
209+
:widths: 5 7 7
209210

210211
* - Parameter
211212
- Value
212213
- Note
213214
* - Locations
214-
- Sweden, US, China, Japan, Brazil, UK, Germany, France, Italy,
215+
- Sweden, USA, China, Japan, Brazil, UK, Germany, France, Italy,
215216
Spain
216217
- 10 locations of interest
217218
* - Simulation start date
218219
- 2025-01-01
219220
-
220221
* - Simulation end date
221222
- 2100-12-31
222-
- 76-year simulation period (forecasted data goes through year 2100)
223+
- 76-year simulation period
223224
* - Observation start date
224225
- 2025-01-01
225226
- No burn-in period
@@ -242,16 +243,19 @@ The basic plan for the design of the simulation is as follows:
242243
* - Age end (Observation)
243244
- 125 years or death
244245
-
245-
* - Population size per draw
246+
* - Initial population size per draw
246247
- 100,000 simulants
247248
-
248249
* - Number of Draws
249250
- 25 draws
250251
-
251252
* - Timestep
252-
- 6 months
253+
- 183 days (~6 months)
253254
- Twice a year is sufficient to capture frequency of testing and
254-
disease progression
255+
disease progression. Model 1 used a timestep of 182 days,
256+
resulting in 3 timesteps the first year, so we increased to 183 to
257+
guarantee exactly 2 timesteps per year for all 76 simulation
258+
years.
255259
* - Randomness key columns
256260
- ['entrance_time', 'age', 'sex']
257261
- There should be no need to modify the standard key columns
@@ -265,7 +269,7 @@ The basic plan for the design of the simulation is as follows:
265269
* - Scenario
266270
- Columns with more details go here
267271
- Note
268-
* - 0. Reference
272+
* - 0. Baseline (Reference)
269273
-
270274
-
271275
* - 1. Testing scale-up (Alternative 1)
@@ -332,7 +336,7 @@ scenario, and input draw.
332336
components to test runtime
333337
- Custom scenario including three types of Alzheimer's testing and a
334338
hypothetical treatment
335-
- * Locations: United States (US)
339+
- * Locations: United States (USA)
336340
* Cohort: Open cohort simulating entire population (including
337341
susceptible simulants, not just simulants who will get AD) in
338342
all age groups; simulants enter at age = 0 using crude birth
@@ -347,11 +351,20 @@ scenario, and input draw.
347351
* CategoricalInterventionObserver for Alzheimer's treatment
348352
* - 1.0
349353
- Simple SI model of AD using GBD data for AD and other dementias
350-
- Reference
351-
- * Locations: US, China
354+
- Baseline
355+
- * Locations: USA, China
352356
* Cohort: Same population model as Model 0.0
353357
- Default
354358
- Default
359+
* - 2.0
360+
- Replace standard population components with :ref:`custom
361+
Alzheimer's population component
362+
<other_models_alzheimers_population>` to model only population
363+
with AD
364+
- Baseline
365+
- * Locations: USA, China
366+
- Default
367+
- Default
355368

356369
5.2 V & V Tracking
357370
------------------------
@@ -370,7 +383,11 @@ scenario, and input draw.
370383
with 100K simulants each)
371384
- None
372385
* - 1.0
373-
- * Verify crude birth rate (CBR) against GBD
386+
- **Note:** All these checks can be done separately for each age
387+
group and sex, but due to the large number of age groups, it may
388+
be more prudent to start by looking at aggregated results.
389+
390+
* Verify crude birth rate (CBR) against GBD
374391
* Verify ACMR against GBD
375392
* Validate Alzheimer's CSMR against GBD
376393
* Verify Alzheimer's incidence rate against GBD
@@ -379,5 +396,46 @@ scenario, and input draw.
379396
* Validate Alzheimer's YLLs and YLDs against GBD
380397
* Check whether overall population remains stable over time
381398
* Check whether Alzheimer's prevalence remains stable over time
399+
* For comparison with model 2, calculate total "real world"
400+
Alzheimer's population over time as :math:`p_\text{AD}(t) \cdot
401+
X_t / S`, where :math:`p_\text{AD}(t)` is prevalence of AD at
402+
time :math:`t`, :math:`X_t` is the simulated population at time
403+
:math:`t`, and :math:`S = X_{2025}` / (real total population in
404+
2025) is the model scale
405+
- * Birth observer was missing, so we couldn't verify CBR
406+
* Total population per draw was 200k instead of 100k, and there
407+
were 10 draws instead of 25
408+
* Timestep was 182 days, resulting in 3 timesteps in 2025, making
409+
population counts 1.5 times what they should be in 2025; we'll
410+
change the timestep to 183 days for future models
411+
* Total population decreased monotonically during the 76 years of
412+
the sim from 200k to about 170k in USA and about 125k in China
413+
-
414+
* - 2.0
415+
- **Note:** All these checks can be done separately for each age
416+
group and sex, but it may be more prudent to start by looking at
417+
aggregated results.
418+
419+
* Verify the number of new simulants per year against the :ref:`AD
420+
population model <other_models_alzheimers_population>`
421+
* Use interactive sim to verify initial population structure
422+
against the :ref:`AD population model
423+
<other_models_alzheimers_population>`
424+
* Verify that all simulants in the model have AD (i.e., all
425+
recorded person-time is in the "AD" state, not the "susceptible"
426+
state)
427+
* Verify that there are no transitions between AD states during
428+
the simulation (since it's an SI model and all simulants should
429+
be in the I state the whole time)
430+
* Verify ACMR against GBD
431+
* Validate Alzheimer's CSMR against GBD
432+
* Validate Alzheimer's EMR against GBD
433+
* Validate Alzheimer's YLLs and YLDs against GBD
434+
* For comparison with model 1, calculate total "real world"
435+
Alzheimer's population over time as :math:`X_t / S`, where
436+
:math:`X_t` is the simulated population at time :math:`t`, and
437+
:math:`S = X_{2025}` / (real population with AD in 2025) is the
438+
model scale (I'm not sure how closely we expect this to match
439+
model 1)
382440
-
383441
-

0 commit comments

Comments
 (0)