Skip to content

Add expense shock calibration(s)#1724

Merged
mnwhite merged 14 commits intomainfrom
AddExpenseShockCalibrations
Feb 26, 2026
Merged

Add expense shock calibration(s)#1724
mnwhite merged 14 commits intomainfrom
AddExpenseShockCalibrations

Conversation

@mnwhite
Copy link
Contributor

@mnwhite mnwhite commented Feb 19, 2026

The first commit adds a new income process constructor that incorporates Mateo's seven point medical expense shock distribution (by five year age blocks), from his JMP. HS and college specifications are tested. His approach specifies medical expenses as negative transitory income shocks.

The next commit will add Fulford and Low's estimation result from the earlier version of their paper, which uses PrefShockConsumerType or KinkyPrefConsumerType MedShockConsumerType.

Adds a new income process constructor that incorporates Mateo's seven point medical expense shock distribution (by five year age blocks), from his JMP. HS and college specifications are tested.
@mnwhite
Copy link
Contributor Author

mnwhite commented Feb 19, 2026

This PR is meant to address #1500

My results don't quite match theirs, so I need to work on this a little.

Also fixed mistakes in the yaml file, and added option for a zero medical needs shock probability.
These fit their target moments better when using HARK's lognormal discretizer.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds calibration support for expense/medical shocks by introducing a new income-process constructor that treats medical expenses as negative transitory income shocks (Velasquez-Giraldo 7-point-by-age-block spec), and aligns MedShock model outputs/tests/docs to use MedLvl.

Changes:

  • Add construct_lognormal_income_process_with_mvg_medical_expenses and tests validating the expanded transitory shock support size by age.
  • Update MedShock model tracking/control naming from Med to MedLvl across code, tests, and example notebook.
  • Introduce a Fulford_and_Low_params parameter dictionary and document changes in the changelog.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tests/ConsumptionSaving/test_modelInits.py Adds tests exercising the new MVG medical-expense income process constructor.
tests/ConsumptionSaving/test_ConsMedModel.py Updates simulation tracking key from Med to MedLvl.
examples/ConsMedModel/MedShockConsumerType.ipynb Updates tracked variable and plotting to use MedLvl.
docs/CHANGELOG.md Notes the new constructor and related updates.
HARK/models/ConsMedShock.yaml Updates policy function naming/call signature to return (cLvl, MedLvl, xLvl).
HARK/ConsumptionSaving/ConsMedModel.py Adds zero-probability support for MedShk discretization, introduces Fulford & Low params, and renames tracked med variable to MedLvl.
HARK/Calibration/Income/IncomeProcesses.py Adds MVG medical-expense income process constructor (expense shocks as negative transitory income).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mnwhite mnwhite merged commit 7de3597 into main Feb 26, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants