A classical t-test that examines each date in the event window.
t_test(list_of_returns, event_start, event_end)
list_of_returns | a list of objects of S3 class |
---|---|
event_start | an object of |
event_end | an object of |
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
t_test_stat
: a t-test statistic
t_test_signif
: a significance of the statistic
Performs a t-test for the event study. The procedure of this test is described in Boehmer et al. 1991, sometimes is called a cross-sectional test. Assumes independence of securities, however is stable to event-induced variance. This test examines the equality of the cross-sectional expected value to zero. The standard deviation, which is used in this test, is simply a cross-sectional standard deviation for a given day in the event window. It calculates statistics even if event window and estimation period are overlapped (intersect). The critical values are Student's t-distributed (no approximation in limit). The significance levels of \(\alpha\) are 0.1, 0.05, and 0.01 (marked respectively by *, **, and ***).
This test strongly requires cross-sectional independence and sensitive to the size of the sample.
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.
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")) %>% t_test(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) t_test(list_of_returns = securities_returns, event_start = as.Date("2020-03-16"), event_end = as.Date("2020-03-20"))#> date weekday percentage mean t_test_stat t_test_signif #> 1 2020-03-16 Monday 100 0.02329740 1.3941497 #> 2 2020-03-17 Tuesday 100 -0.03157867 -1.2769075 #> 3 2020-03-18 Wednesday 100 -0.01617850 -0.4023135 #> 4 2020-03-19 Thursday 100 0.07672027 1.7958275 #> 5 2020-03-20 Friday 100 0.05840545 5.1233281 ***