Nested Pseudo-GMM Estimation of Demand for Differentiated Products
Victor Aguirregabiria, Hui Liu, Yao Luo
TL;DR
The paper tackles the computational burden of estimating large-scale random-coefficients demand models by introducing NP-GMM, a nested pseudo-GMM estimator that conditions on outside-option probabilities to obtain a closed-form, product-separable inversion and analytic gradients. This reordering of estimation steps replaces costly inner fixed-point solves with inexpensive pseudo-GMM updates, yielding substantial speedups and making parallelization central to its efficiency. The authors prove consistency and asymptotic normality of NP-GMM in a setting where the mean-utility dimension diverges with the sample, and demonstrate that finite-sample performance remains comparable to GMM while computational time drops markedly. An extensive Monte Carlo study and a LCBO wine-demand application show NP-GMM outpacing existing methods—especially as the number of products grows—without sacrificing statistical accuracy, underscoring its practical impact for large-scale differentiated-product demand estimation.
Abstract
We propose a fast algorithm for computing the GMM estimator in the BLP demand model (Berry, Levinsohn, and Pakes, 1995). Inspired by nested pseudo-likelihood methods for dynamic discrete choice models, our approach avoids repeatedly solving the inverse demand system by swapping the order of the GMM optimization and the fixed-point computation. We show that, by fixing consumer-level outside-option probabilities, BLP's market-share to mean-utility inversion becomes closed-form and, crucially, separable across products, yielding a nested pseudo-GMM algorithm with analytic gradients. The resulting estimator scales dramatically better with the number of products and is naturally suited for parallel and multithreaded implementation. In the inner loop, outside-option probabilities are treated as fixed objects while a pseudo-GMM criterion is minimized with respect to the structural parameters, substantially reducing computational cost. Monte Carlo simulations and an empirical application show that our method is significantly faster than the fastest existing alternatives, with efficiency gains that grow more than proportionally in the number of products. We provide MATLAB and Julia code to facilitate implementation.
