eventstudies包R中的不一致数组

时间:2018-04-18 20:51:50

标签: r

我正在使用市场模型在R中进行简单的事件研究。我正在使用eventstudies包,其中一个步骤是计算异常返回,ar <- es$z.e - esMean

该软件包的作者提供了xts对象(StockPriceReturns),Events(SplitDates)和Market(Other Returns)的示例。这看起来如下:

> library(eventstudies)
> data(StockPriceReturns)
> data(SplitDates)
> head(SplitDates)

            unit       when
5           BHEL 2011-10-03
6  Bharti.Airtel 2009-07-24
8          Cipla 2004-05-11
9     Coal.India 2010-02-16
10      Dr.Reddy 2001-10-10
11     HDFC.Bank 2011-07-14

> head(StockPriceReturns)
  Bajaj.Auto
2010-07-01       0.5277396
2010-07-02       -1.7309383
2010-07-05       -0.2530097
2010-07-06       -0.3167551
2010-07-07       -1.2771502
2010-07-08       -0.2827092

有了这些数据,我想做一个事件研究 - 见下面的R代码:

# 10-day window around the event
es <- phys2eventtime(z=StockPriceReturns, SplitDates, width = 10)

es.cmr <- constantMeanReturn(es$z.e[which(attributes(es$z.e)$index%in%-30:-11), ], residual = FALSE)

ar <- es$z.e - es.cmr
ar <- window(ar, start = -1, end = 10)
car <- remap.cumsum(ar, is.pc = FALSE, base = 0)
rowMeans(car, na.rm = TRUE)

所以,如果我运行ar <- es$z.e - es.cmr,它会返回:

> ar <- es$z.e - es.cmr
Error in `-.default`(es$z.e, es.cmr) : non-conformable arrays

我已经查看了原始函数(可在他们的GitHub获得)来找出这个错误,但我没有想法如何调试它。我希望有人能帮助我解决这个问题。

关于marketModel:是否有人知道如何使用eventstudies包的marketModel函数执行相同操作。因为在这里我不能写es.mm(见下文),因为错误消息:ROW(firm.returns) == NROW(market.returns) is not TRUE

es.mm <- marketModel(firm.returns = es$z.e[which(attributes(es$z.e)$index%in%-30:-11), ], market.returns = OtherReturns[, "NiftyIndex"], residual = FALSE)

非常感谢你的帮助。

0 个答案:

没有答案