*! version 1.0.0 08jan2018

Title

{ helpb estudy } -- Event study

Description

estudy performs an event study with and without event date clustering on several groups of variables, by permitting to specify multiple varlists, and over different event windows (up to six). Both parametric and non-parametric diagnostic tests are allowed, while the analytical set-up as well as the output's contents and layout can be customized by means of several options. Prices can be used as inputs, as the the program will compute returns.

Syntax

estudy varlist1 [(varlist2)... (varlistN)] [, options]

varlist1 [(varlist2)... (varlistN)] specify the securities returns (or prices when price option has been set) necessary to perform the event study. estudy treats each varlist as independent, computing portfolios and/or average CARs for each one of them.

Date specifications
* datevar(varname) specify the date variable in the dataset. Option datevar must be always specified and sorted in chronological order.

* evdate(strings:string) or evdate(varlists:namelist datelist) specify evdate(strings:string) in case of common event/event date clustering or evdate(varlists:namelist datelist) in case of multiple events (i.e. when each security has its own event date). Either as string or as namelist datelist, the evdate option must be always specified.

* lb1(#) ub1(#) [... lb6(#) ub6(#)] specify lower and upper bounds of event window(s). Only the first upper (lb1(#)) and lower (ub1(#)) bounds must be always specified.

eswlb(#) specify the lower bound of the estimation window; default is the first trading day available.

eswub(#) specify the upper bound of the estimation window; default is eswlb(-30).

Model
modtype(strings:string) specify the model to compute ARs; modtype may be SIM, MAM, MFM or HMM; default is modtype(SIM).

* indexlist(varlist) specify the varlist used to compute (ab)normal returns. Indexlist option must be specified with all models except the Historical Mean Model (this latter specified as modtype(HMM)).

* dateformat(strings:string) indicate the format of the event date (evdate(string) option) in case of event date clustering; dateformat may be: MDY, DMY or YMD.

diagnosticsstat(strings:string) specify the diagnostic test; diagnosticsstat may be Norm, Patell, ADJPatell, BMP, KP, Wilcoxon or GRANK; default is diagn(Norm).

price specify that prices, instead of returns, are provided in varlist1 ... varlistN as well as in indexlist option.

Output
suppress(strings:string) suppress part of the output; suppress may be ind or group.

decimal(#) set the number of decimals for the output table; default is decimal(2), maximum is 7.

showpvalues add a row below ARs, reporting pvalues.

nostar hide significance stars (and the associated legend) from the output table.

outputfile(strings:filename) store results in a .xlsx file (filename is required).

mydataset(strings:datasetname) store results in a .dta file (filename is required).

tex report the output table in tex format.

graph(# # [, save]) graph the cumulative ARs over the customized window as specified by means of the lower and upper bounds; suboption save stores figure in the directory in use.

details show a detailed output including warning messages, if any.

* These options are required

Options

Date specifications

datevar(varname) specifies the name of the date variable in the dataset. The program cannot perform an event study if the time series of securities return is not linked to a date variable. If the variable reported in datevar is not formatted as date, the program returns an error.

evdate(string) or evdate(namelist datelist), respectively, specify the event date (in case of event day clustering) or the securities and the corresponding event dates in case of multiple events. Specifically:

    - With common event date: evdate(string) specifies the common event date. It must be "mmddyyyy" "ddmmyyyy" "yyyymmdd" when the dateformat is, respectively, MDY DMY YMD.

    - With multiple event dates: evdate(namelist datelist), where namelist is a string variable and datelist is a date variable, specifies the multiple event dates.

        The string variable (namelist) must include the name of all the variables specified in varlist1...varlistN.

        The date variable (datlist) must include the event dates corresponding to the variables specified in namelist.

dateformat(string) specifies the format of the event date in case of event day clustering. MDY, DMY or YMD, indicate that the event date evdate has been specified respectively as "mmddyyyy", "ddmmyyyy" or "yyyymmdd". In case of multiple event dates, estudy ignores the dateformat option and returns a warning message.

lb1(#) ub1(#) [... lb6(#) ub6(#)] specify up to 6 event windows (only the first one is required), the event date being the day 0. For each event window, both lower and upper bounds must be specified. They must be indicated as integer values.

eswlb(#) and eswub(#) specify lower and upper bounds of the estimation window. By default, the lower bound is the first trading day available, and the upper bound is the 30th trading day before the event.

Model

modtype(string) specifies the model to compute ARs; modtype may be:

i) SIM (Single Index Model), the default option, requires to specify only one variable (factor) in indexlist

ii) MAM (Market Adjusted Model), requires to specify only one variable (factor) in indexlist

iii) MFM (Multi-Factor Model), requires to specify more than one variable (factors) in indexlist

iv) HMM (Historical Mean Model), ignores indexlist

indexlist(varlist) specifies the variable(s) useful to compute normal and abnormal components of securities return specified in varlist1...varlistN. Prices are allowed only if the option price has been specified. It is conditional to modtype:

Single index model ("SIM") and market adjusted model ("MAM") require only one variable, whereas multi-factor model ("MFM") requires more than one variable.
With historical mean model ("HMM") the program ignores this option.

diagnosticsstat(string) allows the user to select the statistical test for the ARs significance (parametric and non-parametric tests are available).

Parametric tests are:

1) Norm, the default option, is based on the Normal distribution

2) Patell, following the Patell (1976) approach

3) ADJPatell, performs the Patell's test with the Kolari and Pynnonen (2010) adjustment for cross-correlation of ARs

4) BMP, performs the test proposed by Boehmer, Musumeci and Poulsen (1991)

5) KP, performs the BMP's test with the Kolari and Pynnonen (2010) adjustment for cross-correlation of ARs

Non-parametric tests are

1) Wilcoxon, performs the the signed-rank test, proposed by Wilcoxon (1945)

2) GRANK, performs the generalized RANK test, proposed by Kolari and Pynnonen (2011)

Output

suppress(string) sets the format of the output table.

ind hides single securities from the output table, while group keeps them only; by default, single securities, average and portfolio ARs are shown.
suppress cannot be used with only one variable specified in varlist. Option suppress is also valid for tables exported with outputfile, mydataset options as well as for results stored in the return list and graphs generated through the graph option.

graph(# # [, save])} plots the cumulative ARs over the period specified by means of the two scalars, respectively indicating the lower and the upper bouds of the figure.

    The suboption save stores figures in the directory in use.

Remarks

If an event window does not contain any value, the output will show ARs (p-values) equal to 0 (".").

estudy shows messages and warnings (e.g. number of observations in the estimation windows) only if the otpion details has been specified.

If the event date occurs on Saturday or Sunday, estudy substitutes it with the first following Monday and considers it as (+1) day (the Friday is considered as -1, accordingly).
If such a date is still not available, the program terminates showing an error message.

Labels cannot contain the "." character. Their length is automatically cut to 45 characters (if in excess), or to 32 characters if the outputfile and/or mydataset options have been specified.

estudy shows in the output tables (and in the .xslx, .dta files and return list as well) the label of each variable indicated in the varlist1, ..., varlistN. If labels are missing, variable names are used.

Example

Setup

. use data_estudy.dta

Performs an event study on two varlists using returns, specifying three event windows on a common event date (December 4, 2016), using the Bohemer, Musumeci and Paulsen test.

estudy ret_ibm ret_cocacola ret_boa ret_ford ret_boeing (ret_apple ret_netflix ret_google ret_facebook) datevar(date) evdate(12042016)

dateformat(MDY) modt(MFM) indexlist(ret_mkt ret_smb ret_hml) diagn(BMP) lb1(-3) ub1(0) lb2(0) ub2(5) lb3(-3) ub3(3) dec(4)

Performs an event study on two varlists using returns, specifying two event windows and multiple event dates, using the Adjusted Patell test.

estudy ret_ibm-ret_boeing (ret_apple ret_netflix ret_google ret_facebook) , datevar(date) evdate(security_names event_dates) modt(SIM) indexlist(ret_sp500) diagn(ADJPatell) lb1(-3) ub1(3) lb2(-5) ub2(5) dec(4) showpv

Performs an event study on two varlists using prices, specifying two event windows and multiple event dates, using the Adjusted Patell test.

estudy pr_ibm-pr_boeing (pr_apple pr_netflix pr_google pr_facebook) , datevar(date) evdate(security_names event_dates) modt(SIM) indexlist(pr_sp500) pri diagn(ADJPatell) lb1(-3) ub1(3) lb2(-5) ub2(5) dec(4) showpv

Performs an event study on two varlists using prices, specifying two event windows and multiple event dates, using the Bohemer, Musumeci and Paulsen test with the Kolari and Pynnonen adjustment, printing a latex formatted table.

estudy pr_ibm-pr_boeing (pr_apple pr_netflix pr_google pr_facebook) , datevar(date) evdate(security_names event_dates) modt(HMM) indexlist(pr_sp500) pri diagn(KP) lb1(-3) ub1(0) lb2(0) ub2(5) dec(4) tex

Performs an event study on a single varlist using returns, specifying two event windows on multiple event dates, using the Bohemer, Musumeci and Paulsen test with the Kolari and Pynnonen adjustment, showing the group CAAR only and printing it over the [-20 +20] window around the event dates.

estudy ret_ibm-ret_amazon , datevar(date) evdate(security_names event_dates) modt(HMM) indexlist(ret_mkt ret_smb ret_hml) diagn(KP) supp(ind) lb1(-3) ub1(0) lb2(-20) ub2(20) dec(4) graph(-20 20)

Stored results

estudy stores the following in r():

Matrices

r(car) estimated cars
r(pv) p-values of estimated cars
r(sd) standard deviation of the test
r(stats) values of the statistical tests adopted
r(ars) time series of estimated abnormal returns

References

Boehmer, E., Musumeci, J., Poulsen, A. B. (1991). Event-study methodology under conditions of event-induced variance.
Journal of Financial Economics 30, 253-272.

Kolari, J. W., & Pynnonen, S. (2010). Event study testing with cross-sectional correlation of abnormal returns.
Review of financial studies, 23(11), 3996-4025.

Kolari, J. W., & Pynnonen, S. (2011). Nonparametric rank tests for event studies.
Journal of Empirical Finance, 18(5), 953-971.

Patell, J. A., (1976). Corporate forecasts of earnings per share and stock price behavior: Empirical test.
Journal of Accounting Research 14, 246-276.

Wilcoxon, F. (1945). Individual comparisons by ranking methods.
Biometrics Bulletin 1, 80-83.

Authors

Fausto Pacicco, LIUC Università Carlo Cattaneo - fpacicco@liuc.it

Luigi Vena, LIUC Università Carlo Cattaneo - lvena@liuc.it

Andrea Venegoni, LIUC Università Carlo Cattaneo - avenegoni@liuc.it