Skip to content

BTL rent reduction parameters #96

Description

@agurgone

Issue: Calibration and Scaling Errors in Quarterly Model Conversion

Context

Wiese et al. (2024) adapts the housing market calibration from Carro et al. (2023). In the original Carro et al. model, rental offer reductions are defined using:

  1. A monthly probability of occurrence.
  2. A mean and standard deviation of the percentage reduction.

Because Wiese et al. operates on a quarterly frequency, these parameters must be adjusted consistently.

Identified Problems

1. Correct Frequency Conversion (Probability)

The transition from monthly to quarterly probability is handled correctly:

$$ p^{RM}_q = 1 - (1 - 0.1057)^3 = 0.2848 $$

2. Incorrect Parameter Scaling (Equation A.115)

While the probability was adjusted for the quarterly timeline, the scale of the parameters driving the actual reduction in equation (A.115) appears incorrect:

$$ r_p(t) = (1 - \exp(\varepsilon)) r_p(t-1) $$

where:

$$ \varepsilon \sim N(\mu^{RM}, \sigma^{RM}) $$

The scaling flaw: The parameters $\mu^{RM} = 1.6559$ and $\sigma^{RM} = 0.7855$ come from Carro et al. as percentage reduction estimates, but the implementation uses them as level-valued shocks inside $\exp(\varepsilon)$.
Moreover, $\sigma^{RM} = 0.7855$ is a std in Carro et al but interpreted as a variance in Wiese et al.

Used directly, the mean shock implies:

$$ 1 - \exp(1.6559) \approx -4.24 $$

so selected rents are multiplied by a negative number.

3. Incomplete Quarterly Magnitude Conversion

The event probability is converted from monthly to quarterly, but the reduction magnitude is not.

Let the monthly event probability be:

$$ p_m = 0.1057 $$

and let the monthly reduction fraction be:

$$ D_m $$

with:

$$ E[D_m] = 0.016559, \qquad sd(D_m) = 0.007855 $$

In a quarterly model, there are three monthly opportunities:

$$ N \sim Binomial(3, p_m) $$

conditional on at least one reduction. The quarterly reduction is:

$$ D_q = 1 - \prod_{i=1}^{N} (1 - D_i) $$

Using the Carro monthly estimates, the single-event quarterly approximation conditional on at least one reduction is approximately:

$$ E[D_q \mid N \ge 1] \approx 1.8407% $$

$$ sd(D_q \mid N \ge 1) \approx 0.9852% $$

Suggested Fix

  1. Keep calibration parameters in monthly frequency and percentage-point units, matching Carro et al.
  2. Add a utility that converts event probability and conditional reduction magnitude to the model frequency.
  3. Make the code explicit about whether the configured dispersion parameter is a standard deviation or a variance.
  4. Apply rent reductions as percentage reductions, not level shocks inside exp(...):
reduction = np.random.normal(mean, std, n) / 100
reduction = np.clip(reduction, 0.0, max_decrease)
rent *= 1.0 - reduction
Image Image

Wiese, S., Kaszowska-Mojsa, J., Dyer, J., Moran, J., Pangallo, M., Lafond, F., ... & Farmer, J. D. (2024). Forecasting macroeconomic dynamics using a calibrated data-driven agent-based model. arXiv preprint arXiv:2409.18760.

Carro, A., Hinterschweiger, M., Uluc, A., & Farmer, J. D. (2023). Heterogeneous effects and spillovers of macroprudential policy in an agent-based model of the UK housing market. Industrial and Corporate Change, 32(2), 386-432.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions