Abstract
On September 1st, 2021, the Brazilian Ministry of Agriculture announced the suspicion of two cases of Spongiform Encephalopathy, known as mad cow disease, fact that was confirmed on September 4th, 2021. The objective of this work is to understand the effects of this confirmation on assets of four different brazilian companies: 1)JBS (JBSS3); 2)Marfrig (MLFG3); 3)BRF (BRFS3); 4)Minerva Foods (BEEF3). As a result, the disease effect was smaller than expected for the analyzed period, these assets ended the period above the IBOVESPA yield. It is worth mentioning that the event window was from August 30th to September 8th.Below are the packages used for the development of the research.
library(quantmod)
## Warning: package 'quantmod' was built under R version 4.1.2
## Carregando pacotes exigidos: xts
## Warning: package 'xts' was built under R version 4.1.2
## Carregando pacotes exigidos: zoo
## Warning: package 'zoo' was built under R version 4.1.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Carregando pacotes exigidos: TTR
## Warning: package 'TTR' was built under R version 4.1.2
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(PerformanceAnalytics)
##
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
library(data.table)
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:xts':
##
## first, last
library(RColorBrewer)
library(ggplot2)
library(reshape2)
##
## Attaching package: 'reshape2'
## The following objects are masked from 'package:data.table':
##
## dcast, melt
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
##
## between, first, last
## The following objects are masked from 'package:xts':
##
## first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(knitr)
First, the return of the IBOVESPA was analyzed.The index had a behavior with small variations during the period.The greatest variation occurred on September 8, probably due to Brazilian political instability.
#Ibovespa data collection
BenchMarks = '^BVSP'
Ibov= NULL
for (benckmark in BenchMarks) {
Ibov = cbind(Ibov,
getSymbols.yahoo(BenchMarks, from = '2021-8-30', to = '2021-9-9' , auto.assign = F)[,6])
}
#Naming columns
colnames(Ibov) = c('Ibov')
#Ibovespa return
Ret_Ibov = dailyReturn(Ibov) * 100
plot(Ret_Ibov)
To make the comparison between the shares of the companies and the IBOVESPA, the databases must be organized as a Data Frame.In addition, a variable with specific dates was created and the asset return tables were made available.
#Data column
Dias_semana = format(as.Date(c('2021-08-30', '2021-08-31', '2021-09-01',
'2021-09-02', '2021-09-03', '2021-09-06', '2021-09-08'), format="%Y-%m-%d"))
#format as Data Frame
Ret_BEEF3 = as.data.frame(Ret_BEEF3)
Ret_BRFS3 = as.data.frame(Ret_BRFS3)
Ret_Ibov = as.data.frame(Ret_Ibov)
Ret_JBSS3 = as.data.frame(Ret_JBSS3)
Ret_MRFG3 = as.data.frame(Ret_MRFG3)
#Ibov return table
Ret_Ibov$Data = Dias_semana
kable(head(Ret_Ibov), format = "markdown")
| daily.returns | Data | |
|---|---|---|
| 2021-08-30 | 0.0000000 | 2021-08-30 |
| 2021-08-31 | -0.8009020 | 2021-08-31 |
| 2021-09-01 | 0.5177596 | 2021-09-01 |
| 2021-09-02 | -2.2772957 | 2021-09-02 |
| 2021-09-03 | 0.2194091 | 2021-09-03 |
| 2021-09-06 | 0.8004584 | 2021-09-06 |
#Shares return tables
Ret_BEEF3$Data = Dias_semana
kable(Ret_BEEF3, format = "markdown")
| daily.returns | Data | |
|---|---|---|
| 2021-08-30 | 0.0000000 | 2021-08-30 |
| 2021-08-31 | -0.9478563 | 2021-08-31 |
| 2021-09-01 | -1.6746308 | 2021-09-01 |
| 2021-09-02 | -3.6496392 | 2021-09-02 |
| 2021-09-03 | -1.6414161 | 2021-09-03 |
| 2021-09-06 | 6.6752326 | 2021-09-06 |
| 2021-09-08 | -1.2033708 | 2021-09-08 |
Ret_BRFS3$Data = Dias_semana
kable(Ret_BRFS3, format = "markdown")
| daily.returns | Data | |
|---|---|---|
| 2021-08-30 | 0.0000000 | 2021-08-30 |
| 2021-08-31 | -0.6785411 | 2021-08-31 |
| 2021-09-01 | 2.5619129 | 2021-09-01 |
| 2021-09-02 | -1.5820192 | 2021-09-02 |
| 2021-09-03 | 0.5499197 | 2021-09-03 |
| 2021-09-06 | 0.8834666 | 2021-09-06 |
| 2021-09-08 | -2.5020892 | 2021-09-08 |
Ret_JBSS3$Data = Dias_semana
kable(Ret_JBSS3, format = "markdown")
| daily.returns | Data | |
|---|---|---|
| 2021-08-30 | 0.0000000 | 2021-08-30 |
| 2021-08-31 | -0.0320778 | 2021-08-31 |
| 2021-09-01 | 0.0000000 | 2021-09-01 |
| 2021-09-02 | -3.0157254 | 2021-09-02 |
| 2021-09-03 | 2.8779434 | 2021-09-03 |
| 2021-09-06 | 3.2154278 | 2021-09-06 |
| 2021-09-08 | -2.5856667 | 2021-09-08 |
Ret_MRFG3$Data = Dias_semana
kable(Ret_MRFG3[,1:2], format = "markdown")
| daily.returns | Data | |
|---|---|---|
| 2021-08-30 | 0.0000000 | 2021-08-30 |
| 2021-08-31 | -2.2889933 | 2021-08-31 |
| 2021-09-01 | 4.8804395 | 2021-09-01 |
| 2021-09-02 | -2.1405214 | 2021-09-02 |
| 2021-09-03 | 1.4740682 | 2021-09-03 |
| 2021-09-06 | 2.5773360 | 2021-09-06 |
| 2021-09-08 | -0.1370535 | 2021-09-08 |
Finally, the GGplot2 package was used to develop comparative graphs.
#Share Graphs
Graf_BEEF3=ggplot() +
geom_line(data = Ret_BEEF3,aes(group = 1, Data, daily.returns, colour = "Ret_BEEF3"), size = 0.5)+
geom_line(data = Ret_Ibov, aes(Data, daily.returns, group = 1, colour = "Ret_Ibov"), size = 0.5)+
theme_bw() +
labs(x = "Date", y = "Return", title = 'Return BEEF3')+
theme(axis.text.x = element_text(angle = 90), plot.title = element_text(hjust = 0.5))+
scale_colour_manual("",breaks = c("Ret_BEEF3", "Ret_Ibov"),values = c("red", "blue"))
Graf_BRFS3 = ggplot() +
geom_line(data = Ret_BRFS3, aes(group = 1, Data, daily.returns, colour = "Ret_BRFS3"), size = 0.5)+
geom_line(data = Ret_Ibov, aes(Data, daily.returns, group = 1, colour = "Ret_Ibov"), size = 0.5)+
theme_bw()+
labs(x = "Date", y = "Return", title = 'Return BRFS3')+
theme(axis.text.x = element_text(angle = 90), plot.title = element_text(hjust = 0.5))+
scale_colour_manual("",breaks = c("Ret_BRFS3", "Ret_Ibov"),values = c("red", "blue"))
Graf_JBSS3 = ggplot() +
geom_line(data = Ret_JBSS3, aes(group = 1, Data, daily.returns, colour = "Ret_JBSS3"), size = 0.5)+
geom_line(data = Ret_Ibov, aes(Data, daily.returns, group = 1, colour = "Ret_Ibov"), size = 0.5)+
labs(x = "Date", y = "Return", title = 'Return JBSS3')+
theme_bw()+
scale_colour_manual("", breaks = c("Ret_JBSS3", "Ret_Ibov"),values = c("red", "blue"))+
theme(axis.text.x = element_text(angle = 90), plot.title = element_text(hjust = 0.5))
Graf_MRFG3 = ggplot() +
geom_line(data = Ret_MRFG3, aes(group = 1, Data, daily.returns, colour = "Ret_MRFG3"), size = 0.5)+
geom_line(data = Ret_Ibov, aes(Data, daily.returns, group = 1, colour = "Ret_Ibov"), size = 0.5)+
labs(x = "Date", y = "Return", title = 'Return MRFG3')+
theme_bw()+
scale_colour_manual("",breaks = c("Ret_MRFG3", "Ret_Ibov"),values = c("red", "blue"))+
theme(axis.text.x = element_text(angle = 90), plot.title = element_text(hjust = 0.5))
grid.arrange(Graf_MRFG3, Graf_BEEF3, Graf_BRFS3, Graf_JBSS3, ncol=2, nrow=2)
It can be seen that, from August 30th to September 1st, the shares of the selected companies presented different behaviors, since the assets MRFG3 and BRFS3 had a positive return while the asset BEEF3 presented negative returns and the JBSS3 maintained the value constant. On September 1, after the close of trading, the news that the Ministry of Agriculture was investigating suspected cases of Mad Cow Disease was announced. On September 2, the fact was priced in by the market in its negotiations, causing a significant drop in the return on assets.
On Saturday, September 4th, the cases were confirmed.In this context, China suspended imports of Brazilian beef.The Ministry of Agriculture reported that these were isolated cases, therefore, they do not constitute a health risk to Brazilian livestock. In addition, the companies stated that the suspension of exports to China did not pose a risk to their operations, because Chinese demand could be supplied by the meatpackers of these organizations installed abroad, in countries such as Argentina and Uruguay. As result, on Monday, September 6, these shares closed with a higher return than the Ibovespa index.
On the last day analyzed, there was a considerable drop in most stocks listed on B3 due to the political situation in the country.