
Last chance! 50% off unlimited learning
Sale ends in
returns
.Constructs an object of S3 class returns
.
returns(
rates,
regressor,
market_model = c("mean_adj", "mrkt_adj", "sim"),
estimation_method = c("ols"),
estimation_start,
estimation_end
)
an object of class either zoo
or data.frame
giving observed rates of returns of security.
an object of the same class as rates
representing
rates of returns of the market model, if needed.
a character indicating the market model among
mean_adj
, mrkt_adj
, and sim
.
a character specifying an estimation method for
sim
model.
an object of Date
class giving the first date
of the estimation period.
an object of Date
class giving the last date of
the estimation period.
An object of S3 class returns
, which contains following
fields:
observed: an object of zoo
class containing observed rates of
returns.
predicted: an object of zoo
class containing predicted by a
market model rates of returns.
lower95CI: a lower bound of the 95% Confidence Interval for predicted rates of returns.
upper95CI: an upper bound of the 95% Confidence Interval for predicted rates of returns.
abnormal: an object of zoo
class containing abnormal returns.
regressor: an object of zoo
class containing rates of
regressor (typically market index).
market_model: a code name of the market model.
full_name_market_model: a full name of the market model.
estimation_method: a code name of the estimation method (applied only for SIM).
full_name_estimation_method: a full name of the estimation method (applied only for SIM).
coefficients: coefficients
estimation_start: a start date of the estimation period.
estimation_end: an end date of the estimation period.
estimation_length: a length of the estimation period.
The constructor is a generic function, dispatched for classes zoo
data.frame
. Parameters rates
and regressor
should be
objects of the same class (zoo
or data.frame
). There are three
market model implemented. mean_adj
stands for mean-adjusted-returns
model, which is the average of returns during the estimation period.
mrkt_adj
represents market-adjusted-returns model: the securities'
rates of returns are simply market index rates of returns (in terms of
parameters - regressor
). Finally, sim
stands for single-index
market model For this model only Ordinary Least Squares
estimation_method
is currently implemented. All models are described
in Brown and Warner (1985).
Brown S.J., Warner J.B. Using Daily Stock Returns, The Case of Event Studies. Journal of Financial Economics, 14:3-31, 1985.
# NOT RUN {
library("zoo")
## 1. Mean-adjusted-returns model
# }
# NOT RUN {
library("magrittr")
single_return <- get_prices_from_tickers("AMZN",
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") %>%
returns(market_model = "mean_adj",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
# }
# NOT RUN {
## The result of the code above is equivalent to:
data(rates)
single_return <- returns(rates[, "AMZN"],
market_model = "mean_adj",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
## 2. Market-adjusted-returns model
# }
# 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")
single_return <- get_prices_from_tickers("AMZN",
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") %>%
returns(regressor = rates_indx,
market_model = "mrkt_adj",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
# }
# NOT RUN {
## The result of the code above is equivalent to:
data(rates, rates_indx)
single_return <- returns(rates = rates[, "AMZN", drop = FALSE],
regressor = rates_indx,
market_model = "mrkt_adj",
estimation_method = "ols",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
## 3. Single-index market model
# }
# 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")
single_return <- get_prices_from_tickers("AMZN",
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") %>%
returns(regressor = rates_indx,
market_model = "sim",
estimation_method = "ols",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
# }
# NOT RUN {
## The result of the code above is equivalent to:
data(rates, rates_indx)
single_return <- returns(rates = rates[, "AMZN", drop = FALSE],
regressor = rates_indx,
market_model = "sim",
estimation_method = "ols",
estimation_start = as.Date("2019-04-01"),
estimation_end = as.Date("2020-03-13"))
# }
Run the code above in your browser using DataLab