Supervisor: Roine Vestman, Department of Economics, Stockholm University
This project develops and solves a heterogeneous-agent macroeconomic model with housing tenure choice, mortgage markets, and macroprudential regulation, calibrated to the Swedish economy. Households choose between renting and owning, selecting consumption, liquid savings, housing size, and leverage (loan-to-value ratio) subject to institutional constraints including LTV caps, debt-to-income limits, and housing adjustment costs. The model features a four-dimensional state space for homeowners -- idiosyncratic income, liquid assets, housing stock, and LTV ratio -- and discrete tenure transitions (own-to-rent, rent-to-own), making it unsuitable for standard perturbation or endogenous grid methods. Instead, it requires global value function iteration (VFI) with discrete choice over tenure status.
The computational demands arise from three sources. First, solving for the stationary equilibrium at publication-quality grid resolution (approximately 7 income states, 80 asset points, 25 housing points, and 25 LTV points, totaling 350,000 owner-side state points) requires evaluating the Bellman operator over a large choice set at each state, iterated to convergence. Each steady-state solve takes approximately 2-3 hours on a single 128-core Dardel node. Second, calibrating the model to match Swedish housing and mortgage market moments (homeownership rate, LTV distribution, wealth-to-income ratios) requires repeated steady-state solves across candidate parameter vectors -- on the order of 50-200 evaluations per calibration exercise. Third, computing transition dynamics following macroprudential policy changes (e.g., tightening of LTV caps or introduction of amortization requirements) using the Boppart-Krusell-Mitman (2018) method requires solving the household problem backward over approximately 200 periods for each outer iteration on equilibrium prices, with 10-20 such iterations per experiment.
These three tasks are beyond the capacity of a personal workstation within reasonable timelines but are well-suited to the Dardel CPU partition. The model is implemented in Python using Numba for JIT compilation, with shared-memory parallelism over the state space within each VFI solve and embarrassingly parallel job submission across independent parameterizations. Dardel's 128-core AMD EPYC nodes provide the intra-node thread-level parallelism that Numba exploits directly, while SLURM job arrays enable efficient scheduling of independent calibration runs.
The project contributes to the policy-relevant literature on macroprudential regulation in small open economies, with direct applications to Swedish mortgage market policy.