An event study nonparametric test described in Corrado and Zivney 1992.

corrado_sign_test(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

  • csign_stat: a Corrado's sign test statistic

  • csign_signif: a significance of the statistic

Details

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 ***).

References

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.

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")) %>% 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 **