Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modeling language feature requirements / specifications #45

Open
mnwhite opened this issue Sep 13, 2023 · 0 comments
Open

Modeling language feature requirements / specifications #45

mnwhite opened this issue Sep 13, 2023 · 0 comments

Comments

@mnwhite
Copy link
Contributor

mnwhite commented Sep 13, 2023

Just as a brainstorming exercise on my whiteboard, I listed out all of the features/elements that our model representation language will need to have. I've categorized these into four categories:

  1. Needed for proof of concept: These are features that are absolutely necessary to represent any (non-trivial) model and need to be done on the first pass. Luckily, many of them are also the easiest items and/or are already prototyped

  2. Needed for complete micro simulation framework: These are features that are not strictly required to do something non-trivial, but are either needed in order to represent the full array of micro models or are good robustness features to have

  3. Needed for micro preferences / solution framework: These are features that would need to be added for the language to be able to describe why agents would make choices (their preferences). This includes specifying numeric approximations of spaces and representations of functions from primitive parameters.

  4. Needed for macro framework: These are features needed to bring our "macro model" framework into the modeling language.

Note that a lot of these things already have HARK code analogs, but we need to design a human-and-machine readable language that captures them clearly, succinctly, and unambiguously; and then we can connect them to HARK code structures (current, revised, or new). Note that the revisions and additions to HARK can be done in parallel to this as we develop the ideas for the language.


NEEDED FOR PROOF OF CONCEPT

  • continuous variable domain
  • discrete variable domain
  • control variable and information set for it
  • shock variable or distribution
  • dstn discretization methods & "use true dstn" option
  • exogenous parameter or object
  • dynamic equation / rule
  • required beginning-of-period variables
  • initialization rule for those
  • death & replacement event
  • time-tick or period-partition
  • flags & indicators for time-structure of parameters

NEEDED FOR COMPLETE MICRO SIMULATION FRAMEWORK

  • parameter typing and/or restrictions (tests)
  • object validity / required properties (tests)
  • distance metric for relevant objects
  • multiple "stage" problems / assembling "model blocks"
  • switch for population-style vs cohort-style simulation

NEEDED FOR MICRO PREFERENCES / SOLUTION FRAMEWORK

  • within-period reward function
  • intertemporal preference structure (geometric discounting / something else)
  • discretization of state variables
  • framework for describing constructed inputs (from primitives)
  • semi-automated mapping to AgentType.solution policy functions

NEEDED FOR MACRO FRAMEWORK

  • summation / aggregation / operations across individual agents
  • aggregate-level variables
  • format for processing history into belief objects
  • indicator for endogenous objects
  • format for generating new belief from sequence of previously visited beliefs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant