econ-ark/HARK

Configurable mortality and aging in an AgentTypeMonteCarloSimulator

Opened this issue · 1 comments

AgentTypeMonteCarloSimulation current has some hard-coded logic about mortality and birth.

https://github.com/econ-ark/HARK/blob/master/HARK/simulation/monte_carlo.py#L350-L394

One of the recent language research outcomes (RLRO) was a proposal for how mortality/birth/aging information can be encoded as a 'block'.

https://github.com/econ-ark/OverARK/blob/master/Development/hablo/perfect_foresight_full_experimental.yaml#L36-L57

How to properly include aging and mortality in a general, configurable way is currently an unsolved issue for the software design, let alone the language design. This is partly because agent aging also involves indexing into time-dependent parameter values.

This issue is for exploring and implementing the HARK 1.0 version of generalized aging, birth, and mortality, and its interaction with the parameterization logic.

See #1371 for terminology.

Notes from today's meeting with @mnwhite and @alanlujan91 on this:

  • consider breaking up the information between model definition and simulation specification.
  • generalized aging: stochastic aging (transitions between life phases, rather than incrementing deterministically)
  • how to have age-varying parameters without references to age inside the 'hermetic' blocks?
  • maybe this information goes in the 'links' section, since this can do things like:
    • 'twist' variables (maybe age-indexing happens here also)
    • direct block flow to a terminal state upon death.