Bertrand-Functions: Bertrand Calibration and Merger Simulation With Logit, CES...

Bertrand-FunctionsR Documentation

Bertrand Calibration and Merger Simulation With Logit, CES and AIDS Demand

Description

Calibrates consumer demand using either a Logit, CES, or AIDS demand system and then simulates the prices effect of a merger between two firms under the assumption that all firms in the market are playing a Nash-Bertrand price setting game.

Let k denote the number of products produced by all firms below.

Usage

bertrand.alm(
  demand = c("logit", "ces", "aids"),
  prices,
  quantities,
  margins,
  ownerPre,
  ownerPost,
  mktElast = NA_real_,
  insideSize = ifelse(demand == "logit", sum(quantities, na.rm = TRUE), sum(prices *
    quantities, na.rm = TRUE)),
  diversions,
  mcDelta = rep(0, length(prices)),
  subset = rep(TRUE, length(prices)),
  priceOutside = ifelse(demand == "logit", 0, 1),
  priceStart = prices,
  isMax = FALSE,
  parmStart,
  control.slopes,
  control.equ,
  labels = paste("Prod", 1:length(prices), sep = ""),
  ...
)

Arguments

demand

A character vector indicating which demand system to use. Currently allows logit (default), ces, or aids.

prices

A length k vector product prices. Default is missing, in which case demand intercepts are not calibrated.

quantities

A length k vector of product quantities.

margins

A length k vector of product margins. All margins must be either be between 0 and 1, or NA.

ownerPre

EITHER a vector of length k whose values indicate which firm produced a product before the merger OR a k x k matrix of pre-merger ownership shares.

ownerPost

EITHER a vector of length k whose values indicate which firm produced a product after the merger OR a k x k matrix of post-merger ownership shares.

mktElast

A negative number equal to the industry pre-merger price elasticity. Default is NA.

insideSize

Size of all units included in the market. For logit, this defaults to total quantity, while for aids and ces this defaults to total revenues.

diversions

A k x k matrix of diversion ratios with diagonal elements equal to -1. Default is missing, in which case diversion according to revenue share is assumed.

mcDelta

A vector of length k where each element equals the proportional change in a product's marginal costs due to the merger. Default is 0, which assumes that the merger does not affect any products' marginal cost.

subset

A vector of length k where each element equals TRUE if the product indexed by that element should be included in the post-merger simulation and FALSE if it should be excluded. Default is a length k vector of TRUE.

priceOutside

A postive real number equal to the price of the outside good. Default either equals 1 for Logit demand or 0 for CES demand.

priceStart

A vector of length k who elements equal to an initial guess of the proportional change in price caused by the merger. For aids, the default is to draw k random elements from a [0,1] uniform distribution. For ces and logit, the default is prices.

isMax

If TRUE, checks to see whether computed price equilibrium locally maximizes firm profits and returns a warning if not. Default is FALSE.

parmStart

aids only. A vector of length 2 who elements equal to an initial guess for "known" element of the diagonal of the demand matrix and the market elasticity.

control.slopes

A list of optim control parameters passed to the calibration routine optimizer (typically the calcSlopes method).

control.equ

A list of BBsolve control parameters passed to the non-linear equation solver (typically the calcPrices method).

labels

A k-length vector of labels.

...

Additional options to feed to the BBsolve optimizer used to solve for equilibrium prices.

Details

The main purpose of this function is to provide a more convenient front-end for the aids, logit.alm and ces functions.

Using price, and quantity, information for all products in each market, as well as margin information for at least one products in each market, bertrand.alm is able to recover the slopes and intercepts of either a Logit, CES, or AIDS demand system. These parameters are then used to simulate the price effects of a merger between two firms under the assumption that the firms are playing a simultaneous price setting game.

‘ownerPre’ and ‘ownerPost’ values will typically be equal to either 0 (element [i,j] is not commonly owned) or 1 (element [i,j] is commonly owned), though these matrices may take on any value between 0 and 1 to account for partial ownership.

Value

bertrand.alm returns an instance of class LogitALM, CESALM, or AIDS, depending upon the value of the “demand” argument.

Author(s)

Charles Taragin ctaragin+antitrustr@gmail.com


antitrust documentation built on Aug. 24, 2022, 9:05 a.m.