Bertrand-Functions {antitrust} R 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@ftc.gov

[Package antitrust version 0.99.25 Index]