An event study nonparametric test described in Corrado and Zivney 1992.
corrado_sign_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
csign_stat
: a Corrado's sign test statistic
csign_signif
: a significance of the statistic
Performs a nonparametric test for the event study, which is described in
Corrado and Zivney 1992. This test is similar to procedure, described in
Brown and Warner 1985 (t-ratio), but instead of using abnormal
returns, the test uses \(G_{i,t} = sign(A_{i,t} - median(A_i))\).
sign
and median
are ones, which have the same definition as R
functions. For this test the estimation period and the event period must not
overlap, otherwise an error will be thrown. The sign test procedure avoids
the misspecification of tests, which assumes symmetry around zero of abnormal
returns (the median equals to zero). For a single day the performance of this
test is proven to be better than classical Brown and Warner's test (without
event-induced variance). This test is dominated by rank test. The
significance levels of \(\alpha\) are 0.1, 0.05, and 0.01 (marked
respectively by *, **, and ***).
Corrado C.J., Zivney T.L. The Specification and Power of the Sign Test in Event Study Hypothesis Tests Using Daily Stock Returns. Journal of Financial and Quantitative Analysis, 27(3):465-478, 1992.
nonparametric_tests
, sign_test
,
generalized_sign_test
, rank_test
,
modified_rank_test
, and wilcoxon_test
.
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")) %>% corrado_sign_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) corrado_sign_test(list_of_returns = securities_returns, event_start = as.Date("2020-03-16"), event_end = as.Date("2020-03-20"))#> date weekday percentage csign_stat csign_signif #> 1 2020-03-16 Monday 100 0.8636930 #> 2 2020-03-17 Tuesday 100 0.2878977 #> 3 2020-03-18 Wednesday 100 0.8636930 #> 4 2020-03-19 Thursday 100 1.4394883 #> 5 2020-03-20 Friday 100 2.0152836 **