Skip to content

Consumption model update following validation - #544

Merged
dav-sonn merged 5 commits into
simpaths:developfrom
LiangShi369:LiangS-consumption-validation
Oct 23, 2026
Merged

dav-sonn merged 5 commits into
simpaths:developfrom
LiangShi369:LiangS-consumption-validation

Conversation

@LiangShi369

Copy link
Copy Markdown
Contributor

This update adds age-specific log-income slopes and a reference-adult student indicator, retaining log broad expenditure, the existing 14 age groups, common quadratic curvature and other controls.

The updated input/regression_files/reg_wealth_financial.xlsx, sheet FW1a, contains all 65 coefficients and the full covariance matrix. The matching RMSE is 0.6457928727473985 in input/regression_files/reg_RMSE.xlsx, sheet UK, entry FW1a. Other regression processes and the cash-income and donor-matching algorithms are unchanged.

We also revised the LCFS dataset used for estimation and validation:

  1. Benefit-unit own income now sums members’ personal net incomes, replacing the previous allocation of household income by expenditure shares.
  2. The same allocated Council Tax—or domestic rates in Northern Ireland—is deducted from both benefit-unit income and broad expenditure, aligning their local-tax boundaries with the disposable-income measure used by SimPaths.

@justin-ven: The UKHLS initial-population scripts already aggregate constructed personal incomes within benefit units. Could you advise whether their disposable-income measure also needs adjustment for Council Tax/domestic rates, and whether this would require regenerating the initial populations?

The preparation and estimation scripts, validation materials and detailed documentation are maintained separately on our Box drive:

  • SimPathsUK\modules\wealth\03 consumption\collect_lcfs.do: revised LCFS dataset construction.
  • SimPathsUK\modules\wealth\03 consumption\consumption_modelling_lcfs.do: consumption estimation, exporting model inputs and reporting outputs to the corresponding output_ folders.

I am completing the wealth-module documentation, including the revised consumption-modelling section and a new consumption-validation section.

Add age-specific income slopes, student status and the centred consumption
trend. Install the matching FW1a coefficients, covariance and residual RMSE
estimated from benefit-unit own income and expenditure after local tax.

Include standalone Stata construction/estimation scripts, portable three-run
validation and synthetic Stata prediction fixtures. Preserve unrelated
configuration, database setup and cash-income/donor-matching behaviour.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Synthetic prediction parity is supported, but end-to-end simulation effects of the recalibrated consumption model remain unverified.

No open issues 🎉

What changed in this PR

Updates SimPaths’ consumption regression support for the revised model, adding age-specific income slopes and a reference-adult student indicator while retaining common quadratic curvature.

Changes:

  • Adds age–income interactions, student status and a centred year trend that preserves the existing freeze.
  • Adds 700 synthetic Stata fixtures and a script to regenerate them.
  • Adds regression parity tests and checks for age boundaries, income flooring and trend freezing.
File Description
src/​test/​stata/​export_consumption_fixtures.do Exports deterministic predictions from saved Stata estimates.
src/​test/​resources/​simpaths/​model/​consumption_stata_fixtures.csv Supplies 700 reference prediction cases.
src/​test/​java/​simpaths/​model/​ConsumptionRegressionTest.java Checks prediction parity and regressor boundary behavior.
src/​main/​java/​simpaths/​model/​BenefitUnit.java Exposes the revised consumption regressors.

Review effort: Balanced

@dav-sonn dav-sonn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@LiangShi369: the check on the integration tests is failing. If the implemented changes are meant to change the outputs, then the integration tests should be updated accordingly.

@dav-sonn
dav-sonn merged commit 6423b44 into simpaths:develop Oct 23, 2026
6 checks passed
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

Successfully merging this pull request may close these issues.

3 participants