An event study parametric test described in Boehmer 1991.

boehmer(list_of_returns, event_start, event_end)

Arguments

list_of_returns

a list of objects of S3 class returns, each element of which is treated as a security.

event_start

an object of Date class giving the first date of the event period.

event_end

an object of Date class giving the last date of the event period.

Value

A data frame of the following columns:

  • date: a calendar date

  • weekday: a day of the week

  • percentage: a share of non-missing observations for a given day

  • mean: an average abnormal return

  • bh_stat: a Boehmer's test statistic

  • bh_signif: a significance of the statistic

Details

Performs a parametric test for event study, which is described in Boehmer 1991. Also called hybrid test or standardized cross-sectional test. This test performs t-test based on Patell's standardized residuals. By combining Patell's and t-tests, this test allows for event-induced variance changes, but still assumes cross-sectional independence. The test examines the hypothesis whether the theoretical cross-sectional expected value for a given day is equal to zero. It calculates statistics even if event window and estimation period are overlapped (intersect). The critical values has Student's t-distribution. The significance levels of \(\alpha\) are 0.1, 0.05, and 0.01 (marked respectively by *, **, and ***).

References

  • Patell J.M. Corporate forecasts of earnings per share and stock price behavior: empirical tests. Journal of Accounting Research, 14(2):246- 276, 1976.

  • Boehmer E., Musumeci J., Poulsen A.B. Event-study methodology under conditions of event-induced variance. Journal of Financial Economics, 30(2):253-272, 1991.

See also

Examples

if (FALSE) { library("magrittr") rates_indx <- get_prices_from_tickers("^GSPC", start = as.Date("2019-04-01"), end = as.Date("2020-04-01"), quote = "Close", retclass = "zoo") %>% get_rates_from_prices(quote = "Close", multi_day = TRUE, compounding = "continuous") tickers <- c("AMZN", "ZM", "UBER", "NFLX", "SHOP", "FB", "UPWK") get_prices_from_tickers(tickers, start = as.Date("2019-04-01"), end = as.Date("2020-04-01"), quote = "Close", retclass = "zoo") %>% get_rates_from_prices(quote = "Close", multi_day = TRUE, compounding = "continuous") %>% apply_market_model(regressor = rates_indx, same_regressor_for_all = TRUE, market_model = "sim", estimation_method = "ols", estimation_start = as.Date("2019-04-01"), estimation_end = as.Date("2020-03-13")) %>% boehmer(event_start = as.Date("2020-03-16"), event_end = as.Date("2020-03-20")) } ## The result of the code above is equivalent to: data(securities_returns) boehmer(list_of_returns = securities_returns, event_start = as.Date("2020-03-16"), event_end = as.Date("2020-03-20"))
#> date weekday percentage mean bh_stat bh_signif #> 1 2020-03-16 Monday 100 0.02329740 1.20471169 #> 2 2020-03-17 Tuesday 100 -0.03157867 -1.17531339 #> 3 2020-03-18 Wednesday 100 -0.01617850 0.07606284 #> 4 2020-03-19 Thursday 100 0.07672027 2.16657728 * #> 5 2020-03-20 Friday 100 0.05840545 8.65212561 ***