Customize Your Event Study

Benefit from our adaptable expertise and highly modularized software.

Our software is highly modularized that enables to adapt your analysis to your needs. On this site we will present examples on how to create customized extension in our R package.

Example: Operational Risk and Reputation

Let us have a look at the research from Gillet, Hübner, and Plunus (2010). Their study examined how financial companies’ stock prices were affected when they announced operational losses. The results showed that the announcement led to a significant decrease in stock prices and an increase in trading volume. The study also found that when the losses were due to internal fraud, the decrease in stock prices was even greater, indicating reputational damage. The impact was more significant when the losses were a larger proportion of the company’s net profit.

Before calculating the average abnormal return on each day t, the study made an adjustment to isolate the reputational effect of the loss. This was done by adding the return caused by the operational risk to the abnormal return at the time of the announcement (day 0), which was calculated as the operational loss divided by the market value of the company. This adjustment helped to separate the impact of the operational loss from the reputational damage, namely

\[ AR_{i,0}=AR_{i,0}+\frac{\text{loss}_i}{\text{Market Cap}_i}. \]

This adaption can be integrated into our event study software solution by simply adapt the abnormal return calculation:

library(EventStudy)

CustomModel <- R6Class("CustomModel",
                       inherit = MarketModel,
                       public = list(
                         model_name = "CustomModel",
                         public = list(
                           abnormal_returns = function(data_tbl) {
                             # Calculate abnormal returns
                             mm_model = private$.fitted_model
                             data_tbl %>% 
                               mutate(abnormal_returns = firm_returns - predict(mm_model, data_tbl),
                                      abnormal_returns = ifelse(event_date == 1, abnormal_returns + loss_market_cap, abnormal_returns))
                           }
                         )
                       )
)

After defining your customized statistical model you can go on with executing your Event Study. Do not forget to add the additional information to your input data.

Prepare your input data in a data.frame firm_tbl, market_tbl, and request_tbl. The firm_tbl must contain the column loss_market_cap else an error will be thrown during the execution. Your individualized model will then be initialized as

your_model = CustomModel$new()

The detailed example can be found in the github repository.

Literature

References

Gillet, Roland, Georges Hübner, and Séverine Plunus. 2010. “Operational Risk and Reputation in the Financial Industry.” Journal of Banking & Finance 34 (1): 224–35. https://doi.org/10.1016/j.jbankfin.2009.07.020.