pyblp.ProblemResults.compute_approximate_prices

ProblemResults.compute_approximate_prices(firm_ids=None, ownership=None, costs=None, market_id=None)

Approximate equilibrium prices after firm or cost changes, \(p^*\), under the assumption that shares and their price derivatives are unaffected by such changes.

This approximation is discussed in, for example, Nevo (1997). Prices in each market are computed according to the \(\eta\)-markup equation in (7):

(1)\[p^* = c^* + \eta^*,\]

in which the markup term is approximated with

(2)\[\eta^* \approx -\left(O^* \odot \frac{\partial s}{\partial p}\right)^{-1}s\]

where \(O^*\) is the ownership matrix associated with firm changes.

Parameters
  • firm_ids (array-like, optional) – Potentially changed firm IDs. By default, the unchanged firm_ids field of product_data in Problem will be used.

  • ownership (array-like, optional) – Potentially changed ownership matrices. By default, standard ownership matrices based on firm_ids will be used unless the ownership field of product_data in Problem was specified.

  • costs (array-like, optional) – Potentially changed marginal costs, \(c^*\). By default, unchanged marginal costs are computed with ProblemResults.compute_costs().

  • market_id (object, optional) – ID of the market in which to compute approximate equilibrium prices. By default, approximate equilibrium prices are computed in all markets and stacked.

Returns

Approximation of equilibrium prices after any firm or cost changes, \(p^*\).

Return type

ndarray

Examples