Skip to content

Calculate regressions and abnormal returns for large return datasets quickly

License

Notifications You must be signed in to change notification settings

junder873/AbnormalReturns.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stable Build status

AbnormalReturns.jl

This package is designed to quickly calculate abnormal returns on large datasets by running regressions on slices of dates. In finance and economics research, abnormal returns are common for event studies related to firms to interpret how the stock market perceives the event. For example, if a firm makes an announcement, did the market see that as good news? To what degree (i.e., how big are the returns)?

Calculating abnormal returns typically requires running regressions on a slice of the data (during an estimation window) and using those coefficients to predict what a firm's returns would be during an event window. The difference between the the actual returns and the expected returns is used as a measure of abnormal returns.

Performance

This package is capable of calculating abnormal returns very quickly. On a Ryzen 7 5700X, it can calculate 1 million different regressions on different slices of data in under 0.5 seconds. In a larger benchmark using simulated data for 1 million firm-events, this package can calculate abnormal returns for all events using two methods (so 2 million total regressions, 2 million estimations and some other statistics) in 1.5 seconds. See the benchmark folder for more details.

Acknowledgements

This package would not be possible without the extensive work done in BusinessDays.jl and StatsModels.jl.

Disclaimer

While this package does have testing, it is in beta. Methods might change and there could be errors.