CMCRCournot-Functions | R Documentation |
Calculate the marginal cost reductions necessary to restore premerger prices (CMCR), or the net Upwards Pricing Pressure (UPP) in a merger involving firms playing a homogeneous product Cournot pricing game.
cmcr.cournot( shares, mktElast, party = FALSE, rel = c("cost", "price"), labels = names(shares) ) cmcr.cournot2( margins, rel = c("cost", "price"), party = FALSE, labels = names(margins) ) upp.cournot( prices, margins, ownerPre, ownerPost = matrix(1, ncol = length(prices), nrow = length(prices)), mcDelta = rep(0, length(prices)), labels = names(margins) )
shares |
A length-2 vector containing merging party quantity shares. |
mktElast |
A length-1 containing the industry elasticity. |
party |
If TRUE calculate a length-2 vector of individial party CMCRs. If FALSE calculate share-weighted CMCR relative to share-weighted pre-merger marginal costs. Default is FALSE |
rel |
A length 1 character vector indicating whether CMCR should be calculated relative to pre-merger cost (“cost”) or pre-merger price (“price”), Default is “cost”. |
labels |
A length-2 vector of product labels. |
margins |
A length-2 vector of product margins. |
prices |
A length-2 vector of product prices. |
ownerPre |
EITHER a vector of length 2 whose values indicate which of the merging parties produced a product pre-merger OR a 2 x 2 matrix of pre-merger ownership shares. |
ownerPost |
A 2 x 2 matrix of post-merger ownership shares. Default is a 2 x 2 matrix of 1s. |
mcDelta |
A vector of length 2 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. |
The ‘shares’ (or ‘margins’) vector must have 2 elements, and all ‘shares’ and ‘margins’ elements must be between 0 and 1. The ‘mktElast’ vector must have 1 non-negative element.
when ‘party’ is FALSE (default), cmcr.cournot
, cmcr.cournot2
return a vector with 1 element whose value equals the percentage change
in the products' average marginal costs that the merged firms
must achieve in order to offset a price increase. When ‘party’ is TRUE, cmcr.cournot
, cmcr.cournot2
return a vector with 2 element whose value equals the percentage change
in each parties' marginal costs necessary to offset a price increase. When ‘rel’ equals "cost" (default) results are in terms of per-merger marginal costs. Otherwise, results are in terms of pre-merger price.
Charles Taragin
Froeb, Luke and Werden, Gregory (1998). “A robust test for consumer welfare enhancing mergers among sellers of a homogeneous product.” Economics Letters, 58(3), pp. 367 - 369.
Werden, Gregory and Froeb, Luke (2008). “Unilateral Competitive Effects of Horizontal Mergers”, in Paolo Buccirossi (ed), Handbook of Antitrust Economics (MIT Press).
cmcr.bertrand
for a differentiated products Bertrand version of this measure.
shares=c(.05,.65) industryElast = 1.9 margins=shares/industryElast ## calculate average CMCR as a percentage of pre-merger costs cmcr.cournot(shares,industryElast, rel="cost") ## calculate average CMCR as a percentage of pre-merger price cmcr.cournot(shares,industryElast, rel="price") ## calculate average CMCR using margins as a percentage of pre-merger costs cmcr.cournot2(margins, party=TRUE,rel="cost") ## calculate the average CMCR for various shares and ## industry elasticities in a two-product merger where both firm ## products have identical share (see Froeb and ## Werden, 1998, pg. 369, Table 1) deltaHHI = c(100, 500, 1000, 2500, 5000) #start with change in HHI shares = sqrt(deltaHHI/(2*100^2)) #recover shares from change in HHI industryElast = 1:3 result = matrix(nrow=length(deltaHHI),ncol=length(industryElast), dimnames=list(deltaHHI,industryElast)) for(s in 1:length(shares)){ for(e in 1:length(industryElast)){ result[s,e] = cmcr.cournot(rep(shares[s],2),industryElast[e])[1] }} print(round(result,1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.