Learn R Programming

estudy2 (version 0.10.0)

modified_rank_test: An event study modified rank test.

Description

The test is the modification of the original rank test, proposed by Corrado 1989. This test is adapted to missing values in abnormal returns.

Usage

modified_rank_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

  • mrank_stat: a modified rank test statistic

  • mrank_signif: a significance of the statistic

Details

In addition to the original rank test, the procedure divides corresponding ranks by the number of nonmissing returns plus one for each security. This leads to order statistics with uniform distribution. In limit overall statistics under a null hypothesis is approximately normally distributed. For this test the estimation period and the event period must not overlap, otherwise an error will be thrown. The test is well-specified for the case, when cross-sectional abnormal returns are not symmetric. The test is stable to variance increase during the event window. This test is more sensitive to extreme values than the sign 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.

  • Kolari J.W., Pynnonen S. Event Study Testing with Cross-sectional Correlation of Abnormal Returns. The Review of Financial Studies, 23(11):3996-4025, 2010.

See Also

nonparametric_tests,sign_test, generalized_sign_test, corrado_sign_test, rank_test, and wilcoxon_test.

Examples

Run this code
# NOT RUN {
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")) %>%
    modified_rank_test(event_start = as.Date("2020-03-16"),
                       event_end = as.Date("2020-03-20"))
# }
# NOT RUN {
## The result of the code above is equivalent to:
data(securities_returns)
modified_rank_test(list_of_returns = securities_returns,
                   event_start =  as.Date("2020-03-16"),
                   event_end = as.Date("2020-03-20"))

# }

Run the code above in your browser using DataLab