View source: R/nonparametric_tests.R
modified_rank_test | R Documentation |
The test is the modification of the original rank test, proposed by Corrado 1989. This test is adapted to missing values in abnormal returns.
modified_rank_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 |
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 ***).
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
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.
nonparametric_tests
,sign_test
,
generalized_sign_test
, corrado_sign_test
,
rank_test
, and wilcoxon_test
.
## 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"))
## End(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"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.