An event study parametric test described in Patell 1976.
patell(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
pt_stat
: a Patell's test statistic
pt_signif
: a significance of the statistic
Performs a parametric test for event study, which is described in Patell 1976, which is called standardized-residuals method in Boehmer 1991. Test's assumptions are a cross-sectional independence and an insignificance of an event-induced variance. The standardization smooths the effect of the event-induced variance comparing to Brown and Warner tests. Also standardization incorporates the situation, when a highly volatile security dominates the test. 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 are standard normal. The significance levels of \(\alpha\) are 0.1, 0.05, and 0.01 (marked respectively by *, **, and ***).
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.
parametric_tests
, brown_warner_1980
,
brown_warner_1985
, t_test
, and
boehmer
, and lamb
.
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")) %>% patell(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) patell(list_of_returns = securities_returns, event_start = as.Date("2020-03-16"), event_end = as.Date("2020-03-20"))#> date weekday percentage mean pt_stat pt_signif #> 1 2020-03-16 Monday 100 0.02329740 2.5507399 ** #> 2 2020-03-17 Tuesday 100 -0.03157867 -2.9495613 *** #> 3 2020-03-18 Wednesday 100 -0.01617850 0.3283654 #> 4 2020-03-19 Thursday 100 0.07672027 8.4216222 *** #> 5 2020-03-20 Friday 100 0.05840545 6.3196352 ***