top of page

Estudio de eventos con STATA

Foto del escritor: Diego CuetoDiego Cueto

Actualizado: 1 feb 2024

El estudio de eventos se puede trabajar en STATA. Los códigos que se muestran a continuación se pueden ejecutar desde un archivo do. Se puede ejecutar las líneas de comando una por una para verificar el resultado (excepto para el loop que debe ser ejecutado completo). /*se brindan comentarios pertinentes que NO son leídos como comandos ejecutables*/

Se necesita un archivo de data con el nombre de las empresas (Name) y las fechas en que ocurren los eventos (event_date). En este caso los eventos se refieren a 76 fusiones y adquisiciones. Se ha eliminado los eventos con data incompleta. Además, se necesita otro archivo de data con el nombre de las empresas (Name), el retorno del precio de las acciones (Rit) y el retorno del índice del mercado (Rmt) para fechas (date) antes y después del evento. Ambos archivos están ordenados por nombre de empresa y fecha.

Descargar el archivo Study76events.zip y descomprimir los archivos Stockdta76.dta y Event_dates76.dta en una carpeta de trabajo (i.e. C:\Event_studies).


Para comenzar se borra la pantalla, se borra toda la memoria y se establece una variable global llamada "direccion" con la ruta de la carpeta de trabajo.

cls
clear all
global direccion C:\Event_studies

Se fusiona ambos archivos obteniéndose 19377 observaciones y cinco variables.

use "$direccion\Stockdata76.dta", clear
merge m:1 Name using "$direccion\Event_dates76.dta"
save "$direccion\Study76events.dta", replace  

Se crea nuevas variables.

sort Name date /*ordenar por fecha de mas reciente a mas antigua*/
by Name: gen datenum=_n /*numerar observaciones de cada empresa*/ 

Se identifica el día del evento y se crea fechas relativas.

by Name: gen target=datenum if date==event_date
egen td=min(target), by(Name) 
gen dif=datenum-td /*generar fechas relativas*/

Se identifica la ventana del evento desde un día antes hasta un día después del evento.

sort Name dif
by Name: gen event_window=1 if dif>=-1 & dif<=1 

Se identifica la ventana de estimación desde 213 días antes del evento hasta 46 días antes del evento. La ventana de estimación no está contaminada con la información del evento.

by Name: gen estimation_window=1 if dif <=-46 & dif>=-213   
replace event_window=0 if event_window==.
replace estimation_window=0 if estimation_window==.

Se genera una variable sin datos "predicted_return" y una variable numérica "id" sobre la cual iterar, ya que la variable "Name" es alfanumérica.

set more off /*evitar que la ejecución de los comandos se interrumpa */
gen predicted_return=.
egen id=group(Name) 

Se itera sobre los 76 eventos produciendo una regresión para cada empresa, en la ventana de estimación [-213;-46]. El resultado de cada regresión se presenta en pantalla mientras internamente los coeficientes estimados se usan para calcular y guardar los retornos "normales" para los 3 días de la ventana del evento en la variable "predicted_return".

forvalues i=1(1)76 {  
	list id Name if id==`i' & dif==0
	reg Rit Rmt if id==`i' & estimation_window==1 
	predict p if id==`i', xb  
	replace predicted_return = p if id==`i' & event_window==1 
	drop p  
	}

Se genera los retornos anormales acumulados, para la ventana del evento.

sort id date
gen abnormal_return=Rit-predicted_return if event_window==1
by id: egen cumulative_abnormal_return = sum(abnormal_return)

Opcionalmente se presenta en pantalla los retornos anormales acumulados para el día del evento.

format event_date %td
format cumulative_abnormal_return %4.3f
list Name event_date cumulative_abnormal_return if dif==0 

O se exporta a Excel.

export excel Name event_date cumulative_abnormal_return using "$direccion\ulitest76W3n.xlsx" if dif==0, sheet("76W3n") firstrow(variables) replace

Se plantea la hipótesis nula, Ho: el evento no afecta los rendimientos. (Los retornos acumulados a lo largo de la ventana de evento son estadísticamente indistinguibles de cero). Se calcula el estadígrafo para el test.

     reg cumulative_abnormal_return if dif==0
Es (una regresión con una sola variable) una prueba similar al ttest que la media es cero.

Se observa que el valor de Test est. es 8,58 > 1,96 para la ventana del evento de 3 días (-1; 0; +1), por lo tanto se rechaza Ho.


¡El resultado debe verse como en la figura!


Guardar y cerrar el archivo.



Por favor, me comentan si les salió, también me comentan si hay algún error (de tipeo).😊 Si algún archivo no descarga, no duden en solicitarlo por e-mail.

 

Por favor citar así:

"Cueto, Diego C. (19 de junio de 2022). Estudio de eventos en STATA. [Mensaje en un blog].


¡Puedes compartir en las redes sociales!😉

Entradas recientes

Ver todo

Σχόλια


bottom of page