我正在使用 R 的包Antitrust
来计算自身需求和交叉价格弹性,并打印公司之间合并的汇总结果。使用的模型是由Epstein 和 Rubinfeld (2007) 出版的 PC-AIDS(按比例校准的几乎理想需求系统)。这是一个品牌级别的模拟,公司可以在标准模拟中拥有多个品牌,正如我在 excel 中看到的那样。我的愿望是在两家公司之间的合并中充分打印结果,其中一家拥有多个品牌(合并前)。
不过,我的问题似乎是编程/理解代码输出的问题。我将发布我所做的类似代码:
require(antitrust)
ownerPre<-c("a","a","b","c")
ownerPost<-c("a","a","a","c")
shares<-c(0.30,0.20,0.20,0.30)
knownelast<- -1.5
mktelast <- -1.0
results<-pcaids(shares,knownelast, mktelast, ownerPre=ownerPre,ownerPost=ownerPost,
labels=ownerPre,knownElastIndex=1)
resume<-summary(results)
resume
在 行之后results<-summary(results)
,我在输出窗口中收到以下错误:
Error in `row.names<-.data.frame`(`*tmp*`, value = value) :
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique value when setting 'row.names': ‘* a’
summary(results)
保存价格变化、产量变化等的结果。
MaybeAntitrust
没有像我见过的其他 PC-AIDS 版本一样预先编程,也许我无法从这个包中获得这样的结果——这使得编写这个问题的练习几乎毫无意义。但是,如果这是一个编程问题,在 R 方面更有经验的人可能会提供帮助,我邀请一个有用的答案。