Demand Estimation
Last updated on Oct 29, 2021
Introduction
Setting
Oligopoly Supply
-
firms produce differentiated goods/products
-
selling to consumers with heterogeneous preferences
-
static model, complete information
-
products are given
-
equilibrium: NE for each product/market
-
Cost Function
Variable cost of product $j$: $C_j (Q_j , w_{jt} , \mathbb \omega_{jt}, \gamma)$
-
$Q_j$: total quantity of good $j$ sold
-
$w_{jt}$ observable cost shifters; may include product characteristics $x_{jt}$ that will affect demand (later)
-
$\omega_{jt}$ unobserved cost shifters (“cost shocks”); may be correlated with latent demand shocks (later)
-
$\gamma$: parameters
Notes
- for multi-product firms, we’ll assume variable cost additive across products for simplicity
- we ignore fixed costs: these affect entry/exit/innovation but not pricing, conditional on these things
Notation
Some other variables
- $J_t$: products/goods/choices in market $t$ (for now $J_t = J$)
- $P_t = (p_{1t},…,p_{Jt})$: prices of all goods
- $\boldsymbol X_t = ( \boldsymbol x_{1t} , … , \boldsymbol x_{Jt})$ : other characteristics of goods affecting demand (observed and unobserved to us)
In general
- I use bold for arrays in dimensions that are not $i$
(consumers), $j$ (firms) or $t$ (markets)
- For example product characteristics $\boldsymbol x_{jt} = \lbrace x_{jt}^1,, …, x_{jt}^K \rbrace$
- I use CAPS for variables aggregated over $j$ (firms)
- For example vector of prices in market $t$: $P_t = (p_{1t},…,p_{Jt})$
Equilibrium Pricing
-
Demand system:
$$ q_{jt} = Q_j ( P_t, \boldsymbol X_t) \quad \text{for} \quad j = 1,…,J. $$
-
Profit function
$$ \pi_{jt} = Q_j (P_t, \boldsymbol X_t) \Big[p_{jt} − mc_j (w_{jt}, \omega_{jt}, \gamma) \Big] $$
-
FOC wrt to $p_{jt}$:
$$ p_{jt} = mc_{jt} - Q_j (P_t, \boldsymbol X_t) \left(\frac{\partial Q_j}{\partial p_{jt}}\right)^{-1} $$
-
Inverse elasticity pricing (i.e., monopoly pricing) against the “residual demand curve” $Q_j (P_t, \boldsymbol X_t)$:
$$ \frac{p_{jt} - mc_{jt}}{p_{jt}} = - \frac{Q_j (P_t, \boldsymbol X_t)}{p_{jt}} \left(\frac{\partial Q_j}{\partial p_{jt}}\right)^{-1} $$
What do we get?
-
Holding all else fixed, markups/prices depend on the own-price elasticities of residual demand. Equilibrium depends, further, on how a change in price of one good affects the quantities sold of others, i.e., on cross-price demand elasticities
-
If we known demand, we can also perform a small miracle:
-
Re-arrange FOC
$$ mc_{jt} = p_{jt} + Q_j (P_t, \boldsymbol X_t)\left(\frac{\partial Q_j}{\partial p_{jt}}\right)^{-1} $$
-
Supply model + estimated demand $\to$ estimates of marginal costs!
-
-
If we know demand and marginal costs, we can”predict” a lot of stuff - i.e., give the quantitative implications of the model for counterfactual worlds
Issues
-
Typically we need to know levels/elasticities of demand at particular points; i.e., effects of one price change holding all else fixed
-
The main challenge: unobserved demand shifters (“demand shocks”) at the level of the good×market (e.g., unobserved product char or market-specific variation in mean tastes for products)
-
demand shocks are among the things that must be held fixed to measure the relevant demand elasticities etc.
-
explicit modeling of these demand shocks central in the applied IO literature following S. Berry, Levinsohn, and Pakes (1995) (often ignored outside this literature).
Key Challenge
The demand of product $j$
$$ q_{jt} (\boldsymbol X_{t}, P_t, \Xi_t) $$
depends on:
-
$P_t$: $J$-vector of all goods’ prices in market $t$
-
$\boldsymbol X_t$: $J \times k$ matrix of all non-price observables in market $t$
-
$\Xi_t$: J-vector of demand shocks for all goods in market $t$
Key insight: we have an endogeneity problem even if prices were exogenous!
Price Endogeneity Adds to the Challenge
-
all $J$ endogenous prices are on RHS of demand for each good
-
equilibrium pricing implies that each price depends on all demand shocks and all cost shocks
-
prices endogenous
-
control function generally is not a valid solution
-
-
clear that we need sources of exogenous price variation, but
-
what exactly is required?
-
how do we proceed?
-
BLP: Model
Goals of BLP
Model of S. Berry, Levinsohn, and Pakes (1995)
- parsimonious specification to generate the distribution $F_U (\cdot| P, \Xi)$ of random utilities
- sufficiently rich heterogeneity in preferences to permit reasonable/flexible substitution patterns
- be explicit about unobservables, including the nature of endogeneity “problem(s)”
- use the model to reveal solutions to the identification problem, including appropriate instruments
- computationally feasible (in early 1990s!) algorithm for consistent estimation of the model and standard errors.
Utility Specification
Utility of consumer $i$ for product $j$
$$ u_{ijt} = \boldsymbol x_{jt} \boldsymbol \beta_{it} - \alpha p_{jt} + \xi_{jt} + \epsilon_{ijt} $$
Where
-
$\boldsymbol x_{jt}$: $K$-vector of characteristics of product $j$ in market $t$
-
$\boldsymbol \beta_{it} = (\beta_{it}^{1}, …, \beta_{it}^K)$: vector of tastes for characteristics $1,…,K$ in market $t$
-
$\beta_{it}^k = \beta_0^k + \sigma_k \zeta_{it}^k$
-
$\beta_0^k$: fixed taste for characteristic $k$ (the usual $\beta$)
-
$\zeta_{it}^k$: random taste, i.i.d. across consumers and markets $t$
-
-
-
$\alpha$: price elasticity
-
$p_{jt}$ price of product $j$ in market $t$
-
$\xi_{jt}$: unobservable product shock at the level of products $j$ $\times$ market $t$
-
$\epsilon_{ijt}$: idiosyncratic (and latent) taste
Exogenous and Endogenous Product Characteristics
Utility of consumer $i$ for product $j$
$$ u_{ijt} = \boldsymbol x_{jt} \beta_{it} - \alpha p_{jt} + \xi_{jt} + \epsilon_{ijt} $$
-
exogenous characteristics: $\boldsymbol x_{jt} \perp \xi_{jt}$
-
endogenous characteristics: $p_{jt}$ (usually a scalar, price)
- typically each $p_{jt}$ will depend on whole vector
$\Xi_t = (\xi_{1t} , . . . , \xi_{Jt} )$
- and on own costs $mc_{jt}$ and others’ costs $mc_{-jt}$
- we need to distinguish true effects of prices on demand from the
- effects of $\Xi_t$ ; this will require instruments
- of course the equation above is not an estimating equation ($u_{ijt}$ not observed)
- because prices and quantities are all endogenous - indeed determined - simultaneously, you may suspect (correctly) that instruments for prices alone may not suffice.
- typically each $p_{jt}$ will depend on whole vector
$\Xi_t = (\xi_{1t} , . . . , \xi_{Jt} )$
Utility Specification, Rewritten
Rewrite
$$ \begin{align} u_{ijt} &= \boldsymbol x_{jt} \boldsymbol \beta_{it} - \alpha p_{jt} + \xi_{jt} + \epsilon_{ijt} = \newline &= \delta_{jt} + \nu_{ijt} \end{align} $$
where
- $\delta_{jt} = \boldsymbol x_{jt} \boldsymbol \beta_0 - \alpha p_{jt} + \xi_{jt}$
- mean utility of good $j$ in market $t$
- $\nu_{ijt} = \sum_{k} x_{jt}^{k} \sigma^{k} \zeta_{i t}^{k} + \epsilon_{ijt} \equiv \boldsymbol x_{jt} \tilde{\boldsymbol \beta}{it} + \epsilon{ijt}$
- We split $\beta_{it}$ into its random ($\tilde{\beta}_{it}$) and non-random ($\beta_0$) part
From Consumer Utility to Demand
With a continuum of consumers in each market: market shares = choice probabilities
- P.S. continuum not needed, enough that sampling error on choice probs negligible compared to that of moments based on variation across products/markets
$$ s_{jt} (\Delta_t, \boldsymbol X_t, \boldsymbol \sigma) = \Pr (y_{it} = j) = \int_{\mathcal A_j (\Delta_t)} \text d F_{\nu} \Big(\nu_{i0t}, \nu_{i1t}, … , \nu_{iJt} \ \Big| \ \boldsymbol X_t, \boldsymbol \sigma \Big) $$
- where $$ \mathcal A_j(\Delta_t) = \Big\lbrace (\nu_{i0t}, \nu_{i1t}, … , \nu_{iJt} ) \in \mathbb{R}^{J+1}: \delta_{jt} + \nu_{ijt} \geq \delta_{kt} + \nu_{ikt} \ , \ \forall k \Big\rbrace $$ In words: market share of firm $j$ is the frequency of consumers buying good $j$
Demand is just shares $s_{jt}$ per market size $M_t$ $$ q_{jt} = M_t \times s_j (\Delta_t, \boldsymbol X_t, \boldsymbol \sigma) $$
Why Random Coefficients?
Without random coefficients $$ \begin{aligned} u_{ijt} &= \underbrace{\boldsymbol x_{jt} \boldsymbol \beta_0 - \alpha p_{jt} + \xi_{jt}} + \epsilon_{ijt} \newline &= \hspace{3.4em} \delta_{jt} \hspace{3.4em} + \epsilon_{ijt} \end{aligned} $$ If $\epsilon_{ijt}$ are iid and independent of $(\boldsymbol X_t, P_t)$, e.g. as in the multinomial logit or probit models,
- products differ only in mean utilities $\delta_{jt}$
- $\to$ market shares depend only on the mean utilities
- $\to$ price elasticities (own and cross) depend only on mean utilities too
Implication: two products with the same market shares have the same cross elasticities w.r.t. all other products
Does this matter?
Yes!
- Mercedes class-A and Fiat Panda might both have low market shares
- But realistically should have very different cross-price elasticities w.r.t. BMW series-2
What is the issue?
-
Models (like MNL) that have only iid additive taste shocks impose very restrictive relationships between the levels of market shares and the matrix of own and cross-price derivatives
- Impact on counterfactuals!
-
Restrictions only coming from model assumptions (analytical convenience)
-
Models always imporse restrictions
- necessary for estimation
- but must allow flexibility in the relevant dimensions
How do random coefficients help?
In reality:
- goods differ in multiple dimensions
- consumers have (heterogeneous) preferences over these differences
How do random coefficients capture it?
- large $\beta_i^k$ $\leftrightarrow$ strong taste for characteristic
$k$
- e.g., maximum speed for sport car
- Consumer $i$’s first choice likely to have high value of $x^k$
- $i$’s second choice too!
- Mark: cross elasticities are always about 1st vs. 2nd choices
Incorporating this allows more sensible substitution patterns
- competition is mostly “local”
- i.e., between firms offering products appealing to the same consumers.
Which random coefficients?
Which characteristics have random coefficients?
- dummies for subsets of products?
- S. T. Berry (1994): covers the nested logit as a special case
- certain horizontal or vertical characteristics?
- parts of $(\boldsymbol X_t, P_t)$?
In practice
- Choice depends on the application and data set, including instruments
- Too many RC’s (w.r.t quantity of data available) $\to$ imprecise estimates of $\boldsymbol \sigma$
BLP: Estimation
Setting
Observables
- $\boldsymbol X_t$: product characteristics
- $P_t$: prices
- $S_t$: observed market shares
- $\boldsymbol W_t$: observable cost shifters
- $\boldsymbol Z_t$: excluded instruments
Sketch of procedure
- start with demand model alone
- suppose $ F_{
\nu
{=tex}} (\cdot
{=tex} |\boldsymbol
{=tex}X,\boldsymbol
{=tex}\sigma
{=tex})$ is known (i.e., $\sigma$ known) - for each market $t$, find mean utilities $\Delta_t \in \mathbb R$
such that
$s_{jt} (\Delta_t, \boldsymbol X_t, \boldsymbol \sigma) = s^{obs}_{jt} \ \forall j$
- i.e.,“invert” model at observed market shares to find mean utilities $\boldsymbol \delta$
- where $s^{obs}_{jt}$ are the observed market shares
- using IV ,e.g. $\mathbb E [\boldsymbol z_{jt} | \xi_{jt} ] = 0$, estimate the equation
Issues
- What instruments?
- Will the “inversion” step actually work?
- What about $\boldsymbol \sigma$??
- Formal estimator?
- Computational algorithm(s)?
- Supply side
- additional restrictions (moment conditions)
- help estimation of demand
- additional parameters: marginal cost function
- why? may care directly
- and needed for counterfactuals that change equilibrium quantities unless $mc$ is constant
- additional restrictions (moment conditions)
Instruments
We need intruments for all endogenous variables—prices and quantities—independently.
-
Excluded cost shifters $\boldsymbol W_t$ (classic)
- Usually: wages, material costs, shipping cost to market $t$, taxes/tariffs, demand shifters from other markets
-
Or proxies for them
- Usually: price of same good in another mkt (“Hausman instruments”)
-
Markup shifters:
-
Usually: characteristics of “nearby” markets (“Waldfogel instruments”)
-
Logic: income/age/education in San Francisco might affect prices in Oakland but might be independent fo Oakland preferences
-
-
Product characteristics of other firms in the same market $\boldsymbol X_{-jt}$
- “BLP instruments”
- affect quantities directly; affect prices (markups) via equilibrium only
Inversion
How do we get from market shares to prices??
Given x,σ and any positive shares sh, define the following mapping $\Phi : \mathbb R^j \to \mathbb R^j$ $$ \Phi (\Delta_t) = \Delta_t + \log\Big( \hat S^{obs}_t \Big) - \log \Big( S_t (\Delta_t, \boldsymbol X_t, \boldsymbol \sigma) \Big) $$ S. T. Berry (1994): for any nonzero shares sh, Φ is a contraction
- under mild conditions on the linear random coefficients random utility model
- extreme value and normal random coeff not necessary
What does it imply?
- It has a unique fixed point: we can compute $\delta_{jt} = \delta (S_t, \boldsymbol X_t, \boldsymbol \sigma)$
- We can compute the fixed point iterating the contraction from any initial guess $\Delta_{0t}$
What about $\sigma$?
What we we got?
- inversion result: for any market shares and any $\boldsymbol \sigma$, we can find a vector of mean utilities $\Delta_t$ that rationalizes the data with the BLP model
- a non-identification result? there is no information about $\boldsymbol \sigma$ from market shares?
What are we forgetting?
- Cross-market variation!
- We can get the mean utilities $\delta_{jt} = \boldsymbol x_{jt} \boldsymbol \beta_0 - \alpha p_{jt} + \xi_{jt}$
- As in OLS, use $\boldsymbol z_{jt} \perp \xi_{jt}$ to get identification of $(\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$
Identification of $\sigma$
We are trying to estimate $(\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$ from $$ \mathbb E \Big[ \xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma) \cdot \boldsymbol z_{jt} \Big] = \mathbb E \Big[ \big( \delta_{jt}(\boldsymbol \sigma) - \boldsymbol x_{jt} \boldsymbol \beta_0 + \alpha p_{jt} \big) \cdot \boldsymbol z_{jt} \Big] $$ What kind of intruments $\boldsymbol z_{jt}$ do we need?
- $\boldsymbol x_{jt}$ (for $\boldsymbol \beta_0$)
- intruments for $p_{jt}$ (for $\alpha$)
- but also something for $\boldsymbol \sigma$!
BLP Estimation
Steps
- Take guess of parameters $(\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$
- From observed market shared $S^{obs}{t}$ and $\boldsymbol \sigma$ get mean utilities $\delta{jt} (\boldsymbol \sigma)$
- Use also $(\alpha, \boldsymbol \beta_0)$ to get $\xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$
- Compute empirical moments $\frac{1}{JT} \xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma) \cdot \boldsymbol z_{jt}$
The GMM estimator is $(\hat \alpha, \boldsymbol{\hat{\beta}_0}, \boldsymbol{\hat{\sigma}})$ that get the empirical moments as close to $0$ as possible.
Issues
- Computing $S_t (\Delta_t, \boldsymbol X_t, \boldsymbol \sigma)$
involves a high dimensional integral
- Use simulation to approximate distribution of random tastes $\zeta_{it}^k$
- P.S. recall that we have decomposed random coefficients $\beta_{it}^k$ as $\beta_{it}^k = \beta_0^k + \sigma_k \zeta_{it}^k$
- $\xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$ has
no closed form solution
- Compute it via contraction
- MPEC?
Computation
Nested fixed point algorithm
Sketch of the algorithm
- Draw a vector of consumer tastes
- Until you have found a minimum for
$\mathbb E \Big[ \xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma) \cdot \boldsymbol z_{jt} \Big]$
do
- Pick a vector of parameter values $(\alpha, \boldsymbol \beta_0, \boldsymbol \sigma)$
- Initialize mean utilities $\delta_{jt}^0$
- Until
$\big|\big| \Delta_{t}^{n+1} - \Delta_{t}^{n} \big|\big| < tolerance$
do
- Compute implied shares: $s_{jt} (\Delta_{t}^{n}, \boldsymbol X_t, \boldsymbol \sigma) = \int \frac{\exp \left[ \boldsymbol x_{j t} \boldsymbol{\tilde{\beta}}{it}+\delta{j t}\right]}{1+\sum_{j^{\prime}} \exp \left[\boldsymbol x_{j^{\prime} t} \boldsymbol{\tilde{\beta}}{it}+\delta{j’ t}\right]} f\left( \boldsymbol{\tilde{\beta}}{it} \mid \theta\right) d \tilde{\beta}{i t}$
- Update mean utilities: $\Delta_{t}^{n+1} = \Delta_{t}^{n} + \log\Big( \hat S^{obs}t \Big) - \log \Big( S_t (\Delta{t}^{n}, \boldsymbol X_t, \boldsymbol \sigma) \Big)$
- Compute $\xi_{jt} = \delta_{jt} - \boldsymbol x_{jt} \boldsymbol \beta_0 + \alpha p_{jt}$
- Compute $\mathbb E \Big[ \xi_{jt} (\alpha, \boldsymbol \beta_0, \boldsymbol \sigma) \cdot \boldsymbol z_{jt} \Big]$
Notes
- Important to draw shocks outside the optimization routine!
Appendix
References [references]
Berry, Steven T. 1994. “Estimating Discrete-Choice Models of Product Differentiation.” The RAND Journal of Economics, 242–62.
Berry, Steven, James Levinsohn, and Ariel Pakes. 1995. “Automobile Prices in Market Equilibrium.” Econometrica: Journal of the Econometric Society, 841–90.