Package 'crseEventStudy'

Title: A Robust and Powerful Test of Abnormal Stock Returns in Long-Horizon Event Studies
Description: Based on Dutta et al. (2018) <doi:10.1016/j.jempfin.2018.02.004>, this package provides their standardized test for abnormal returns in long-horizon event studies. The methods used improve the major weaknesses of size, power, and robustness of long-run statistical tests described in Kothari/Warner (2007) <doi:10.1016/B978-0-444-53265-7.50015-9>. Abnormal returns are weighted by their statistical precision (i.e., standard deviation), resulting in abnormal standardized returns. This procedure efficiently captures the heteroskedasticity problem. Clustering techniques following Cameron et al. (2011) <doi:10.1198/jbes.2010.07136> are adopted for computing cross-sectional correlation robust standard errors. The statistical tests in this package therefore accounts for potential biases arising from returns' cross-sectional correlation, autocorrelation, and volatility clustering without power loss.
Authors: Siegfried Köstlmeier [aut, cre] , Seppo Pynnonen [aut]
Maintainer: Siegfried Köstlmeier <[email protected]>
License: BSD_3_clause + file LICENSE
Version: 1.2.2
Built: 2024-10-23 05:30:11 UTC
Source: https://github.com/skoestlmeier/crseeventstudy

Help Index


Abnormal standardized returns (ASR) in long-horizon event studies

Description

asr implements the calculation of abnormal standardized returns.

Abnormal standardized returns are defined as the excess standardized returns relative to the standardized return of a matching control firm or relative to the average of standardized returns of a matching control portfolio. Standardized returns are defined as srit=ritsitsr_{it} = \frac{r_{it}}{s_{it}} where sits_{it} is a standard deviation estimator of log returns ritr_{it}.

Usage

asr(event, control, logret = FALSE)

Arguments

event

a vector or time series of returns.

control

a vector or time series of returns.

logret

An object of class "logical": If logret is FALSE, then both return-series 'event' and 'control' will be converted into log-returns before calculating abnormal standardized returns. Set logret to TRUE, if both return-series are already log-returns.

Value

asr returns a vector of class "numeric":

ASR

Vector containing abnormal standardized returns.

References

Dutta, A., Knif, J., Kolari, J.W., Pynnonen, S. (2018): A robust and powerful test of abnormal stock returns in long-horizon event studies. Journal of Empirical Finance, 47, p. 1-24. doi:10.1016/j.jempfin.2018.02.004.

Examples

## load demo_returns
## calculate mean of daily abnormal standardized returns from 2015-01-01 to 2017-12-31
## with E.ON AG as event firm and RWE AG as control firm.
data(demo_returns)
ASR <- asr(event=demo_returns$EON, control=demo_returns$RWE, logret=FALSE)
mean(ASR)

Clustering robust t-statistics for abnormal returns in long-horizon event studies

Description

crseEvent implements a robust statistical test developed by Dutta et al. (JempFin, 2018).

The test is based on abnormal standardized returns and offers three implementations. Standardized returns are defined as srit=ritsitsr_{it} = \frac{r_{it}}{s_{it}} where sits_{it} is a standard deviation estimator of log returns ritr_{it}:

Use of Abnormal standardized returns (ASR)

Abnormal standardized returns are defined as ASRit=sritsrci,tASR_{it} = sr_{it} - sr_{ci,t}, where srci,tsr_{ci,t} is the standardized return of the matching control firm or the average of standardized returns of the matching control portfolio.

Use of Standardized abnormal returns (SAR)

Standardized abnormal returns are defined as SARit=reventrcontrolsdeventcontrolSAR_{it} = \frac{r_{event} - r_{control}}{sd_{event-control}}. The matching control return should be derived from a single firm observation and not be the return-series of a portfolio.

Use of Continuously compounded abnormal returns (CCAR)

Continuously compounded abnormal returns are defined as CCARit=ritrci,tCCAR_{it} = r_{it} - r_{ci,t}, where rit=log(1+Rit)r_{it} = log(1 + R_{it}) is the event month tt continuously compounded return (i.e., log-return) of event stock ii, and rci,tr_{ci,t} is the continuously compounded return of the control firm.

Usage

crseEvent(data, abnr = "ars", cluster1 = "yyyymm",
  cluster2 = NULL, na.rm = TRUE, na.replace = 0)

Arguments

data

an object of class "data.frame" (or one that can be coerced to that class)

abnr

Name of a column from data which contains abnormal standardized returns (ASR), standardized abnormal returns (SAR) or continuously compounded abnormal returns (CCAR).

cluster1

Name of a column from data which contains the primarely cluster-variables for the observations.

cluster2

Name of a column from data which contains additional cluster-variables for the observations.

na.rm

An object of class "logical": If na.rm is TRUE, missing observations for the item abnr will be removed from the dataset. Otherwise missing oberservations will be replaced with a value defined in na.replace

na.replace

A numeric scalar: If data contains missing observations for the abnormal return series and na.rm is FALSE, these missing return values will be overritten with the value of na.replace

Value

crseEvent returns an object of class crse and list.

The returning value of "crseEvent" is a "list" containing the following components:

N

Total number of observations.

mean.abnormal.ret

Mean abnormal return.

t.val.nonclustered

Non-clustered (common) t-value.

p.val.nonclustered

Non-clustered (common) p-value.

t.val.one.clustered

One-way clustered t-value.

p.val.one.clustered

One-way clustered p-value.

tcl2

One-way clustering t-value with respect to second clustering variable (NA if cluster2 is NULL).

pcl2

One-way clustering p-value with respect to second clustering variable (NA if cluster2 is NULL).

tcl12

2-way clustering t-value (NA if cluster2 is NULL).

pcl12

2-way clustering p-value (NA if cluster2 is NULL).

cluster1

Name of the first cluster variable.

cluster2

Name of the second cluster variable.

reg.fit

Regression results on which t-value compuations are based.

var.cl1

Robust variance of abnormal return series with regard to one-way clustering on variable cluster1.

var.cl2

Robust variance of abnormal return series with regard to one-way clustering on variable cluster2.

var.cl12

Robust variance of abnormal return series with regard to two-way clustering on both variable cluster1 and cluster2.

unique.cl1

Total number of unique observations by clustering on variable cluster1.

unique.cl2

Total number of unique observations by clustering on variable cluster2.

References

Dutta, A., Knif, J., Kolari, J.W., Pynnonen, S. (2018): A robust and powerful test of abnormal stock returns in long-horizon event studies. Journal of Empirical Finance, 47, p. 1-24. doi:10.1016/j.jempfin.2018.02.004.

Examples

## load demo_share_repurchases
## one-way clustering on column "date" and print summary statistics
data(demo_share_repurchases)
crse <- crseEvent(demo_share_repurchases, abnr="ars", cluster1 = "date")
summary(crse)

## print mean of abnormal return series
crse$mean.abnormal.ret

Total returns for E.ON AG and RWE AG

Description

demo_returns is a sample of daily total returns, i.e. including dividends, for the german electric utility companies E.ON AG (ISIN: DE000ENAG999) and RWE AG (ISIN: DE0007037129). The return series for the Frankfurt stock exchange starts at 2015-01-01 with end at 2017-12-31 and has 760 daily return observations which are denoted in Euro. date is the trading-day, for which return observations are available ind the format "yyyy-mm-dd". EON denotes the return series for E.ON AG and RWE denotes the return series for RWE AG.

Usage

data(demo_returns)

Examples

## load demo_returns
data(demo_returns)

## calculate the mean total return E.ON AG in the year 2016.
## get the appropriate rows for the whole year 2016
dates <- which("2016-01-01" <= demo_returns$date & demo_returns$date <= "2016-12-31")

## calculate mean return
mean(demo_returns$EON[dates])

Abnormal standardized returns for german stock repurchase announcements

Description

demo_share_repurchases is a sample of abnormal standardized returns (ASR). The data contains 65 share repurchase announcements as published in Köstlmeier/Röder (2019). The announcements refer to german stocks from Jan. 2006 to Dec. 2016 listed in the DAX, MDAX and SDAX, where monthly return data for three subsequent years (beginning in the month after the announcement) is available. code denotes the Thomson-Reuters Datastream Mnemonic for each observation. date is the date (format: "yyyymm") for which the abnormal standardized return is calculated. ars denotes the column for the abnormal return series, which are pre-calculated abnormal standardized returns (ASR).

Usage

data(demo_share_repurchases)

References

Siegfried Köstlmeier, Klaus Röder (2019): Kurseffekte von Aktienrückkäufen in Deutschland und die zugrunde liegenden Motive von deren Ankündigung. CORPORATE FINANCE, 01-02, CF1286049, p. 10-17. https://cf-fachportal.owlit.de/document.aspx?docid=CF1286049.

Examples

## load demo_share_repurchases
data(demo_share_repurchases)

## calculate the mean abnormal return for the subsequent three years after
## the announcement of share repurchases for Munich Re AG from Apr. 2015 to Mar. 2018
beginn <- which(demo_share_repurchases$code=="D:MUV2" & demo_share_repurchases$date=="201504")[1]
stop <- beginn + 35
mean(demo_share_repurchases$ars[beginn:stop])

Standardized abnormal returns (SAR) in long-horizon event studies

Description

sar implements the calculation of standardized abnormal returns.

Standardized abnormal returns are defined as the excess event-return relative to a specific return of a matching control firm, and the remaining result subsequently divided by the standard variation of this excess return series: SARit=reventrcontrolsdeventcontrolSAR_{it} = \frac{r_{event} - r_{control}}{sd_{event-control}}, with log-returns reventr_{event} and rcontrolr_{control}. The matching control-return should be a single firm return-series and not portfolio-returns.

Usage

sar(event, control, logret="FALSE")

Arguments

event

a vector or time series of returns.

control

a vector or time series of returns.

logret

An object of class "logical": If logret is FALSE, then both return-series 'event' and 'control' will be converted into log-returns before calculating standardized abnormal returns. Set logret to TRUE, if both return-series are already log-returns.

Value

sar returns a vector of class "numeric":

SAR

Vector containing standardized abnormal returns.

References

Dutta, A., Knif, J., Kolari, J.W., Pynnonen, S. (2018): A robust and powerful test of abnormal stock returns in long-horizon event studies. Journal of Empirical Finance, 47, p. 1-24. doi:10.1016/j.jempfin.2018.02.004.

Examples

## load demo_returns
## calculate mean of daily standardized abnormal returns from 2015-01-01 to 2017-12-31
## with E.ON AG as event firm and RWE AG as control firm.
data(demo_returns)
SAR <- sar(event=demo_returns$EON, control=demo_returns$RWE, logret=FALSE)
mean(SAR)