Baseline-conditional gentrification coding (MRM primitive)
Source:R/mrm_primitives_gentrification.R
mrm_gentrification.RdThree-level categorical coding of tract-level gentrification,
mirroring the Python module morie.mrm_primitives.gentrification.
Adapted from Laniyonu (2018) Urban Affairs Review 54(5):898-930,
which itself adapts Chapple / Freeman / Maciag.
Details
The key insight: continuous gentrification indices conflate two distinct populations – already-affluent tracts (immune to gentrification by construction) and marginalised tracts that DID or DID NOT change. The cleanest comparator is the marginalised-but- did-not-gentrify tract, so this primitive emits a 3-level factor:
ineligible– tract was above the baseline- marginalisation cutoff (top-50\ cannot meaningfully "gentrify". Drop from analyses that want the gentrification comparator.eligible– tract was below the cutoff at t=0 AND did NOT cross the gentrification threshold by t=1. This is the control: marginalised, did-not-change.gentrified– tract was below the cutoff at t=0 AND DID cross the gentrification threshold (top-tercile growth in college share AND top-tercile growth in median rent).