SPB Git forge

spb/wp18_uqo

Public
6commits 1branches 0releases
5.4 MBsize
maindefault branch
yesterdaylast push
TeX 53.2% Python 46.6%
7.5 KB · 103 lines yaml
Raw Blame History
1# WP18 — experiment definitions (CLAUDE.md Phase 3, experiments 1-10).2# Each scenario = baseline.yaml + overrides (dotted keys). `kind` selects the solver:3#   ss      : stationary recursive competitive equilibrium (GE: p, p^r, estate lottery re-solved)4#   ss_pe   : household block + simulation at BASELINE prices (partial equilibrium, prices fixed)5#   mit     : perfect-foresight transition after an unanticipated shock (GE) + its PE counterpart6#   static  : temporary equilibria with static (steady-state) expectations (experiment 8, A6)7# Results are written to results/data/<group>/<name>.json ; every file carries the field8# "equilibrium": "GE" | "PE (prices fixed)" | "static expectations".910groups:1112  # ---- Experiment 1 & 2: baseline moments, profiles, equal-income paths ----------------------13  baseline:14    - {name: baseline, kind: ss, overrides: {}}1516  # ---- Experiment 3: down-payment constraint and entry threshold sweep ------------------------17  theta_sweep:18    - {name: theta_005, kind: ss, overrides: {mortgage.theta: 0.05}}19    - {name: theta_010, kind: ss, overrides: {mortgage.theta: 0.10}}20    - {name: theta_020, kind: ss, overrides: {mortgage.theta: 0.20}}   # = baseline21    - {name: theta_030, kind: ss, overrides: {mortgage.theta: 0.30}}22    - {name: theta_040, kind: ss, overrides: {mortgage.theta: 0.40}}23    - {name: theta_005_pe, kind: ss_pe, overrides: {mortgage.theta: 0.05}}24    - {name: theta_040_pe, kind: ss_pe, overrides: {mortgage.theta: 0.40}}25    - {name: psi_030, kind: ss, overrides: {mortgage.psi: 0.30}}26    - {name: psi_050, kind: ss, overrides: {mortgage.psi: 0.50}}2728  # ---- Experiment 4: surprise inflation, contracts, persistence, rent indexation --------------29  inflation:30    - {name: frm_level,        kind: mit, shock: {type: inflation, persistence: 1, contract: frm}}31    - {name: term5_level,      kind: mit, shock: {type: inflation, persistence: 1, contract: term5}}32    - {name: arm_level,        kind: mit, shock: {type: inflation, persistence: 1, contract: arm}}33    - {name: frm_persistent,   kind: mit, shock: {type: inflation, persistence: 2, contract: frm}}34    - {name: term5_persistent, kind: mit, shock: {type: inflation, persistence: 2, contract: term5}}35    - {name: arm_persistent,   kind: mit, shock: {type: inflation, persistence: 2, contract: arm}}36    - {name: frm_level_rigid_rents, kind: mit, shock: {type: inflation, persistence: 1, contract: frm}, overrides: {rental.eta_rent: 0.0}}37    - {name: frm_level_unindexed_wages, kind: mit, shock: {type: inflation, persistence: 1, contract: frm}, overrides: {rental.eta_wage: 0.0}}38    - {name: frm_persistent_taylor, kind: mit, shock: {type: inflation, persistence: 2, contract: frm, phi_r: 0.5}}39    - {name: term5_persistent_taylor, kind: mit, shock: {type: inflation, persistence: 2, contract: term5, phi_r: 0.5}}40    - {name: frm_level_fixed_supply, kind: mit, shock: {type: inflation, persistence: 1, contract: frm}, overrides: {supply.eps: 0.05, supply.eps_r: 0.05}}41    - {name: frm_level_noseg, kind: mit, shock: {type: inflation, persistence: 1, contract: frm}, overrides: {rental.sigma_seg: 0.0}}4243  # ---- Experiment 5: leverage / LTV and negative house-price shocks ---------------------------44  leverage:45    - {name: rate_shock_theta020, kind: mit, shock: {type: real_rate, dr_annual: 0.02, persistence: 4}}46    - {name: rate_shock_theta005, kind: mit, shock: {type: real_rate, dr_annual: 0.02, persistence: 4}, overrides: {mortgage.theta: 0.05}}47    - {name: rate_shock_theta040, kind: mit, shock: {type: real_rate, dr_annual: 0.02, persistence: 4}, overrides: {mortgage.theta: 0.40}}48    # negative price shocks are also evaluated as pure accounting on the baseline cross-section49    # (price_drop_accounting in simulation.py: -10 %, -20 %, -30 %) — PE, prices fixed after the drop.5051  # ---- Experiment 6: bequests on/off, transfer tax --------------------------------------------52  bequests:53    - {name: bequests_off, kind: ss, overrides: {preferences.nu: 0.0}}54    - {name: bequests_half, kind: ss, overrides: {preferences.nu: 1.5}}55    - {name: transfer_tax_020, kind: ss, overrides: {government.tau_b: 0.20}}56    - {name: transfer_tax_050, kind: ss, overrides: {government.tau_b: 0.50}}57    - {name: bequests_off_pe, kind: ss_pe, overrides: {preferences.nu: 0.0}}5859  # ---- Experiment 7: supply elasticity -------------------------------------------------------60  supply:61    - {name: eps_005, kind: ss, overrides: {supply.eps: 0.05, supply.eps_r: 0.05}}62    - {name: eps_025, kind: ss, overrides: {supply.eps: 0.25, supply.eps_r: 0.25}}63    - {name: eps_050, kind: ss, overrides: {supply.eps: 0.5, supply.eps_r: 0.5}}64    - {name: eps_200, kind: ss, overrides: {supply.eps: 2.0, supply.eps_r: 2.0}}65    - {name: eps_005_theta005, kind: ss, overrides: {supply.eps: 0.05, supply.eps_r: 0.05, mortgage.theta: 0.05}}66    - {name: eps_005_theta040, kind: ss, overrides: {supply.eps: 0.05, supply.eps_r: 0.05, mortgage.theta: 0.40}}67    - {name: eps_200_theta005, kind: ss, overrides: {supply.eps: 2.0, supply.eps_r: 2.0, mortgage.theta: 0.05}}68    - {name: eps_200_theta040, kind: ss, overrides: {supply.eps: 2.0, supply.eps_r: 2.0, mortgage.theta: 0.40}}69    - {name: noseg, kind: ss, overrides: {rental.sigma_seg: 0.0}}70    - {name: halfseg, kind: ss, overrides: {rental.sigma_seg: 0.5}}7172  # ---- Experiment 8: rates, rent growth, earnings risk, expectations -------------------------73  sensitivity:74    - {name: r_001, kind: ss, overrides: {rates.r_annual: 0.01}}75    - {name: r_003, kind: ss, overrides: {rates.r_annual: 0.03}}76    - {name: pi_000, kind: ss, overrides: {rates.pi_annual: 0.00}}77    - {name: pi_004, kind: ss, overrides: {rates.pi_annual: 0.04}}78    - {name: pi_004_pe, kind: ss_pe, overrides: {rates.pi_annual: 0.04}}   # Proposition 3: tilt at fixed prices79    - {name: phi_002, kind: ss, overrides: {rental.phi: 0.02}}80    - {name: phi_008, kind: ss, overrides: {rental.phi: 0.08}}81    - {name: sigma_low, kind: ss, overrides: {income.sigma_annual: 0.10}}82    - {name: sigma_high, kind: ss, overrides: {income.sigma_annual: 0.20}}83    - {name: rho_g_040, kind: ss, overrides: {income.rho_intergenerational: 0.40}}84    - {name: dep_premium_002, kind: ss, overrides: {income.dep_premium_annual: 0.02}}85    - {name: frm_level_static, kind: static, shock: {type: inflation, persistence: 1, contract: frm}}86    - {name: rent_growth_pe, kind: rent_growth_pe, overrides: {}, shock: {g_rent_annual: 0.01}}8788  # ---- Experiment 10: robustness (see robustness.py for grid/tolerance/sample-size variants) --89  robustness:90    - {name: beta_094, kind: ss, overrides: {preferences.beta_annual: 0.94}}91    - {name: beta_098, kind: ss, overrides: {preferences.beta_annual: 0.98}}92    - {name: gamma_3, kind: ss, overrides: {preferences.gamma: 3.0}}93    - {name: alpha_025, kind: ss, overrides: {preferences.alpha: 0.25}}94    - {name: kappa_high, kind: ss, overrides: {housing.kappa_b: 0.05, housing.kappa_s: 0.08}}95    - {name: kappa_low, kind: ss, overrides: {housing.kappa_b: 0.01, housing.kappa_s: 0.02}}96    - {name: chi_005, kind: ss, overrides: {preferences.chi: 0.05}}97    - {name: grid_fine, kind: ss, overrides: {grids.n_a: 80, grids.n_b: 30, grids.n_x: 180, grids.n_B: 16}}98    - {name: grid_coarse, kind: ss, overrides: {grids.n_a: 30, grids.n_b: 12, grids.n_x: 80, grids.n_B: 8}}99    - {name: tol_tight, kind: ss, overrides: {equilibrium.tol_excess: 1.0e-5, equilibrium.tol_lottery: 1.0e-4}}100    - {name: sample_small, kind: ss, overrides: {simulation.n_dynasties: 24000}}101    - {name: sample_large, kind: ss, overrides: {simulation.n_dynasties: 240000}}102    - {name: seed_alt, kind: ss, overrides: {meta.seed: 7}}103