Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Event Study Methodology using a GARCH Model


From   Kaspar Dardas <kaspar.dardas@googlemail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Event Study Methodology using a GARCH Model
Date   Wed, 21 Oct 2009 15:50:34 +0200

Hi Ronan,


I got your event study running with Stata 11 and Martin´s help
(please note to "xset id date" before runnig the GARCH estimation- right
before runnig your loop). However, I am not sure whether the command
"predict" after

arch ret market_return if id==`i' & estimation_window==1, arch(1) garch(1)

will give you proper estimtates for Abnormal Returns. Could anybody
help or comment what the command "predict" after "arch ret
market_return, arch(1) garch(1) returns?
Specifically, are these figures comparable to residuals which are
returned after a usual reg command?


Best,

Kaspar

2009/10/20 Ronan Gallagher <rgallagher09@qub.ac.uk>:
> Hi Statalist members,
>
> I am currently undertaking an financial market event study using Stata.  My
> data file has variables for company id, date, eventdate, return and market
> return.  I am using the guide posted at the link below for some background:
>
> http://dss.princeton.edu/usingdata/stata/analysis/eventstudy.html
>
> In this formulation, normal returns are calculated using the standard market
> model (5 day event window and 30 day estimation window). I wish to implement
> a similar event study however using a GARCH(1,1) process to generate
> 'normal' returns.  In order to facilitate this approach, is it just a matter
> of swapping the line:
>
> reg ret market_return if id==`i' & estimation_window==1
>
> with
>
> arch ret market_return if id==`i' & estimation_window==1, arch(1) garch(1)
>
> Will the 'predict' function make an appropriate prediction of the stock
> return conditional on returns exhibiting GARCH(1,1) attributes?  For your
> information the code I am basing my event study on is displayed below.
>
> Thank-you very much for any help you may be able to offer.
>
> Regards,
> Ronan
>
> sort company_id date
> by company_id: gen datenum=_n
> by company_id: gen target=datenum if date==event_date
> egen td=min(target), by(company_id)
> drop target
> gen dif=datenum-td
> by company_id: gen event_window=1 if dif>=-2 & dif<=2
> egen count_event_obs=count(event_window), by(company_id)
> by company_id: gen estimation_window=1 if dif<-30 & dif>=-60
> egen count_est_obs=count(estimation_window), by(company_id)
> replace event_window=0 if event_window==.
> replace estimation_window=0 if estimation_window==.
> set more off
> gen predicted_return=.
> egen id=group(company_id)
>  forvalues i=1(1)N { /*note: N is replaced by the number of events, in my
> case 127 */
>        l id company_id if id==`i' & dif==0
>        reg ret market_return if id==`i' & estimation_window==1
>        predict p if id==`i'
>        replace predicted_return = p if id==`i' & event_window==1
>        drop p
> }
> sort id date
> gen abnormal_return=ret-predicted_return if event_window==1
> by id: egen cumulative_abnormal_return = sum(abnormal_return)
> sort id date
> by id: egen ar_sd = sd(abnormal_return)
> gen test =(1/sqrt(5)) * ( cumulative_abnormal_return /ar_sd)
> list company_id cumulative_abnormal_return test if dif==0
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index