The BLP Contraction Mapping

Summary

Estimation requires inverting the random-coefficients share system to recover the vector of mean utilities that rationalizes the observed market shares for a given guess of . Berry (1994) / BLP (1995) show this inversion can be computed by iterating the fixed point , which is a contraction mapping with a unique fixed point. This is the “inner loop” of the nested fixed-point algorithm. Modern best practice replaces plain iteration with acceleration (SQUAREM) or Jacobian-based (Levenberg-Marquardt) solvers, which are 3-12x faster.

Overview

For each candidate , and separately and in parallel for each market , we must solve the equations in unknowns that set predicted shares equal to observed shares. Holding fixed turns one large -dimensional nonlinear system into small -dimensional systems, which is the source of BLP’s scalability. The mapping is the Berry inversion.

Main Content

The system to solve ^share-system

In market we seek the -vector satisfying

A unique solution exists mathematically, but it cannot be solved exactly numerically; instead we solve to a tolerance expressed in the log difference in shares:

Tolerance is a tradeoff: too loose and numerical error propagates to (Dubé et al. 2012); too tight and it can never be met. The recommended is between 1E-14 and 1E-12 (machine epsilon 1E-16 in double precision).

The BLP fixed point is a contraction ^contraction

Berry et al. (1995) show the relation given by

is a contraction mapping. Iteration is linearly convergent at a rate proportional to , where the Lipschitz constant (Dubé et al. 2012) is

A smaller converges faster. A larger outside-good share generally implies a smaller Lipschitz constant; as the outside share shrinks, convergence takes increasingly many steps. (Empirically, shrinking from 0.91 to 0.27 raised iteration counts by ~5x.)

RCNL: the contraction must be dampened ^rcnl-dampen

For random-coefficients nested logit, the plain update is no longer a contraction; it must be dampened by :

Convergence becomes arbitrarily slow as (more within-nest substitution), making RCNL harder to estimate. Without random coefficients () the inversion has the closed form (Berry 1994).

Faster solvers: Newton / Levenberg-Marquardt and SQUAREM ^accelerated

Two families improve on plain iteration:

  • Jacobian-based. Newton-Raphson updates , where . The Levenberg-Marquardt (LM) least-squares solver is the fastest, most reliable Jacobian method; its update solves , interpolating between Gauss-Newton () and gradient descent (large ). Cost per iteration is high (computing numerical-integral Jacobians).
  • Accelerated fixed points. SQUAREM (Varadhan & Roland 2008) uses the residual and curvature to take an approximate Newton step without forming the Jacobian, at essentially the cost of plain iterations. It is 3-6x faster than direct iteration (3-8x fewer iterations in simulations) and is the recommended default. (No formal convergence guarantee, as the accelerated iteration is no longer a contraction; DF-SANE is a similar but slightly slower/less robust alternative.)

Examples

Inner loop for one guess of (NFXP step (a)):

  1. For each market , start at the plain-logit solution (or the previous ‘s solution, a “hot start” saving 10-20% of iterations).
  2. Run SQUAREM (or LM) until 1E-14.
  3. Return to the outer GMM loop. Markets run in parallel across processors.

Connections

See Also