Abstract
Why do populations exhibit Zipf's law nationally and within regions? I propose a theory of location choice in which cities substitute for one another at varying geographical scales, and which generates the rank-size regularity and a fractal spatial pattern. The model links bilateral migration flows to population cross-elasticities, yielding testable predictions: migration is nearly log-uniform in distance, follows gravity, is disproportionately long-distance for large cities, and is excessively large-city-to-large-city. I then use observed migration flows to discipline a quantitative version of the model. Combined with agglomeration, the model reproduces the observed spatial distribution across multiple stable equilibria.