Logo


TRABALHO FINAL

Author

GABRIELA OLIVEIRA DA SILVA, JEFFERSON GUILHERME SILVA E RAIFF ODINE GUIMARAES TANNUSS

library(dplyr)
Warning: package 'dplyr' was built under R version 4.3.3

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(tidyr)
Warning: package 'tidyr' was built under R version 4.3.3
library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.3.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats   1.0.0     ✔ readr     2.1.4
✔ ggplot2   3.4.3     ✔ stringr   1.5.0
✔ lubridate 1.9.2     ✔ tibble    3.2.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)

Relatório de Análise de Risco em Ações - 2024

Este relatório apresenta a análise do desempenho financeiro de cinco empresas brasileiras — Embraer, Azul, Taesa, BB Seguridade e Weg — ao longo de 2024, com base nos preços de fechamento diários de suas ações. O objetivo é avaliar os retornos diários, suas médias, desvios-padrões e coeficientes de variação (CV), além de visualizar a trajetória dos preços de fechamento.

A análise foi realizada no ambiente R, utilizando técnicas de manipulação e visualização de dados. Trata-se de um estudo voltado para a avaliação do risco em ações, buscando compreender a volatilidade e o potencial de ganho dos diferentes ativos, considerando os riscos associados a cada investimento. Avaliar os riscos é fundamental para tomar decisões de investimento mais conscientes, uma vez que permite identificar fatores que podem impactar negativamente os retornos e alinhar as escolhas ao perfil do investidor.

Para alcançar esses objetivos, foram empregados indicadores e ferramentas que auxiliam na compreensão do comportamento histórico das ações e na projeção de cenários futuros. Foram analisados, ainda, conceitos como a relação entre risco e retorno, por meio de métricas como o Índice de Sharpe e o VaR (Valor em Risco), que ajudam a medir o desempenho ajustado ao risco de cada ativo.

Além disso, foi realizada uma comparação entre ações de diferentes setores da economia, com o intuito de verificar quais ativos demonstraram maior estabilidade e potencial de valorização. Essa abordagem permitiu identificar as ações com maior nível de risco e aquelas com melhor relação risco-retorno, proporcionando subsídios para a formulação de estratégias de investimento mais adequadas a diferentes perfis de investidores.

Dados

Carregando dados das empresas

Embraer

Setor: Industrial (Aeronáutica e Defesa)

A Embraer é uma das maiores fabricantes de aeronaves do mundo, especialmente no segmento de aviões comerciais regionais (até 150 passageiros). Também atua em aviação executiva, defesa e segurança e sistemas agrícolas.

embraer <- read.csv2("dados/embraer_2024.csv", encoding = "Latin-1", sep = ",")
embraer <- embraer %>%
  mutate(DATA = as.Date(DATA, format = "%d/%m/%Y")) %>%
  arrange(DATA)
fechamento_embraer <- data.frame(DATA = embraer$DATA, FECHAMENTO = embraer$FECHAMENTO)

Azul

Setor: Transporte Aéreo

A Azul é uma das maiores companhias aéreas do Brasil, oferecendo serviços de transporte de passageiros e cargas. Conhecida por atender muitas cidades do interior que outras companhias não cobrem.

azul <- read.csv2("dados/azul.csv", encoding = "Latin-1", sep = ",")
azul <- azul %>%
  mutate(DATA = as.Date(DATA, format = "%d/%m/%Y")) %>%
  arrange(DATA)
fechamento_azul <- data.frame(DATA = azul$DATA, FECHAMENTO = azul$FECHAMENTO)

Taesa

Setor: Energia Elétrica (Transmissão)

Taesa (Transmissora Aliança de Energia Elétrica) é uma das maiores empresas de transmissão de energia do Brasil.

taesa <- read.csv2("dados/taesa.csv", encoding = "Latin-1", sep = ",")
taesa <- taesa %>%
  mutate(DATA = as.Date(DATA, format = "%d/%m/%Y")) %>%
  arrange(DATA)
fechamento_taesa <- data.frame(DATA = taesa$DATA, FECHAMENTO = taesa$FECHAMENTO)

BB Seguridade

Setor: Financeiro (Seguros e Previdência)

Holding de seguros, previdência e capitalização do Banco do Brasil. Opera principalmente com seguros de vida, seguros rurais e previdência privada.

bbseguridade <- read.csv2("dados/bb_seguridade.csv", encoding = "Latin-1", sep = ",")
bbseguridade <- bbseguridade %>%
  mutate(DATA = as.Date(DATA, format = "%d/%m/%Y")) %>%
  arrange(DATA)
fechamento_bbseguridade <- data.frame(DATA = bbseguridade$DATA, FECHAMENTO = bbseguridade$FECHAMENTO)

Weg

Setor: Industrial (Equipamentos Elétricos)

Multinacional brasileira que fabrica motores elétricos, automação industrial, tintas, transformadores e soluções para geração de energia (inclusive renovável).

weg <- read.csv2("dados/weg.csv", encoding = "Latin-1", sep = ",")
weg <- weg %>%
  mutate(DATA = as.Date(DATA, format = "%d/%m/%Y")) %>%
  arrange(DATA)
fechamento_weg <- data.frame(DATA = weg$DATA, FECHAMENTO = weg$FECHAMENTO)

Consolidando os dados em um único data frame

dados_completos <- data.frame(
  Data = fechamento_embraer$DATA,
  fechamento_embraer = fechamento_embraer$FECHAMENTO,
  fechamento_azul = fechamento_azul$FECHAMENTO,
  fechamento_taesa = fechamento_taesa$FECHAMENTO,
  fechamento_bbseguridade = fechamento_bbseguridade$FECHAMENTO,
  fechamento_weg = fechamento_weg$FECHAMENTO
)

Calculando os retornos logaritimos das empresas em porcentagem

dados_completos <- dados_completos %>%
  mutate(
    retorno_log_embraer = log(as.numeric(fechamento_embraer) / lag(as.numeric(fechamento_embraer))) * 100,
    retorno_log_azul = log(as.numeric(fechamento_azul) / lag(as.numeric(fechamento_azul))) * 100,
    retorno_log_taesa = log(as.numeric(fechamento_taesa) / lag(as.numeric(fechamento_taesa))) * 100,
    retorno_log_bbseguridade = log(as.numeric(fechamento_bbseguridade) / lag(as.numeric(fechamento_bbseguridade))) * 100,
    retorno_log_weg = log(as.numeric(fechamento_weg) / lag(as.numeric(fechamento_weg))) * 100
  ) %>%
  filter(complete.cases(retorno_log_embraer, retorno_log_azul, retorno_log_taesa,
                        retorno_log_bbseguridade, retorno_log_weg))

Gráfico de linha: Trajetória dos preços de fechamento

dados_fechamento_long <- dados_completos %>%
  select(Data, fechamento_embraer, fechamento_azul, fechamento_taesa,
         fechamento_bbseguridade, fechamento_weg) %>%
  pivot_longer(cols = starts_with("fechamento_"), names_to = "empresa", values_to = "fechamento") %>%
  mutate(empresa = gsub("fechamento_", "", empresa))
ggplot(dados_fechamento_long, aes(x = Data, y = as.numeric(fechamento), color = empresa)) +
  geom_line() +
  scale_color_manual(values = c(
    "embraer" = "#003087", "azul" = "#00A1D6", "taesa" = "#228B22",
    "bbseguridade" = "#8B008B", "weg" = "#DC143C"
  )) +
  scale_x_date(date_breaks = "1 month", date_labels = "%b %Y") +
  labs(
    title = "Trajetória dos Preços de Fechamento das Empresas (2024)",
    x = "Data",
    y = "Preço de Fechamento (R$)"
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = "top",
    legend.title = element_blank()
  )

A Figura 4 mostra a trajetória dos preços de fechamento ao longo de 2024, com uma linha para cada empresa. As tendências observadas, com base nos dados fornecidos, são:

Embraer: Iniciou em R$21,56 em 03/01/2024, atingiu um pico de R$58,49, caiu para uma mínima de R$21,07, e terminou em R$56,19 em 30/12/2024.

Azul: Iniciou em R$14,21, alcançou um pico de R$14,89, caiu para uma mínima de R$3,30, e terminou em R$3,54 em 30/12/2024.

Taesa: Iniciou em R$34,94, variou entre um máximo de R$35,64 e uma mínima de R$32,09, e terminou em R$32,86.

BB Seguridade: Iniciou em R$29,50, atingiu um pico de R$35,26, caiu para uma mínima de R$28,98, e terminou em R$34,09.

Weg: Iniciou em R$35,95, alcançou um pico de R$58,03, caiu para uma mínima de R$31,55, e terminou em R$52,37.

A Embraer apresentou o maior crescimento, com o preço mais que dobrando de R$21,56 para R$56,19, refletindo seu alto retorno médio e confirmando sua posição como a melhor escolha. Azul sofreu a maior queda, de R$14,21 para R$3,54, consistente com seu retorno negativo e alta volatilidade, indicando alto risco. Weg também mostrou forte crescimento, de R$35,95 para R$52,37, alinhado com seu retorno positivo. BB Seguridade teve um crescimento moderado, de R$29,50 para R$34,09, consistente com seu retorno baixo, mas positivo. Taesa permaneceu estável, com variação limitada entre R$32,09 e R$35,64, terminando em R$32,86, refletindo sua baixa volatilidade e retorno quase neutro.

Garantir que a coluna ‘Data’ esteja no formato Date

dados_completos$Data <- as.Date(dados_completos$Data, format = "%d/%m/%Y")

Organizando as datas em ordem crescente

dados_completos <- dados_completos %>% arrange(Data)

Calculando a média dos retornos

dados_media_retorno <- dados_completos %>%
  summarise(
    media_retorno_embraer = mean(retorno_log_embraer, na.rm = TRUE),
    media_retorno_azul = mean(retorno_log_azul, na.rm = TRUE),
    media_retorno_taesa = mean(retorno_log_taesa, na.rm = TRUE),
    media_retorno_bbseguridade = mean(retorno_log_bbseguridade, na.rm = TRUE),
    media_retorno_weg = mean(retorno_log_weg, na.rm = TRUE)
  )

Gráfico de médias

dados_media_long <- dados_media_retorno %>%
  pivot_longer(cols = everything(), names_to = "empresa", values_to = "media_retorno") %>%
  mutate(empresa = gsub("media_retorno_", "", empresa))
ggplot(dados_media_long, aes(x = empresa, y = media_retorno, fill = empresa)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = c(
    "embraer" = "#003087", "azul" = "#00A1D6", "taesa" = "#228B22",
    "bbseguridade" = "#8B008B", "weg" = "#DC143C"
  )) +
  labs(
    title = "Média dos Retornos das Empresas",
    x = "Empresa",
    y = "Média do Retorno (%)"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

cálculo de variancia

dados_variancia <- dados_completos %>%
  select(retorno_log_embraer, retorno_log_azul, retorno_log_taesa,
         retorno_log_bbseguridade, retorno_log_weg) %>%
  filter(complete.cases(retorno_log_embraer, retorno_log_azul, retorno_log_taesa,
                        retorno_log_bbseguridade, retorno_log_weg)) %>%
  summarise(
    var_embraer = var(retorno_log_embraer, na.rm = TRUE),
    var_azul = var(retorno_log_azul, na.rm = TRUE),
    var_taesa = var(retorno_log_taesa, na.rm = TRUE),
    var_bbseguridade = var(retorno_log_bbseguridade, na.rm = TRUE),
    var_weg = var(retorno_log_weg, na.rm = TRUE)
  )

Gráfico de variância

dados_variancia_long <- dados_variancia %>%
  pivot_longer(cols = everything(), names_to = "empresa", values_to = "variancia") %>%
  mutate(empresa = gsub("var_", "", empresa))
ggplot(dados_variancia_long, aes(x = empresa, y = variancia, fill = empresa)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = c(
    "embraer" = "#003087", "azul" = "#00A1D6", "taesa" = "#228B22",
    "bbseguridade" = "#8B008B", "weg" = "#DC143C"
  )) +
  labs(
    title = "Variância dos Retornos das Empresas",
    x = "Empresa",
    y = "Variância"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

print(dados_variancia)
  var_embraer var_azul var_taesa var_bbseguridade  var_weg
1    6.183458 22.71081  0.713186        0.9312315 2.498539

cálculo coeficiente de variação

dados_cv <- dados_completos %>%
  select(retorno_log_embraer, retorno_log_azul, retorno_log_taesa,
         retorno_log_bbseguridade, retorno_log_weg) %>%
  filter(complete.cases(retorno_log_embraer, retorno_log_azul, retorno_log_taesa,
                        retorno_log_bbseguridade, retorno_log_weg)) %>%
  summarise(
    cv_embraer = sd(retorno_log_embraer, na.rm = TRUE) / mean(retorno_log_embraer, na.rm = TRUE),
    cv_azul = sd(retorno_log_azul, na.rm = TRUE) / mean(retorno_log_azul, na.rm = TRUE),
    cv_taesa = sd(retorno_log_taesa, na.rm = TRUE) / mean(retorno_log_taesa, na.rm = TRUE),
    cv_bbseguridade = sd(retorno_log_bbseguridade, na.rm = TRUE) / mean(retorno_log_bbseguridade, na.rm = TRUE),
    cv_weg = sd(retorno_log_weg, na.rm = TRUE) / mean(retorno_log_weg, na.rm = TRUE)
  )

Gráfico CV

dados_cv_long <- dados_cv %>%
  pivot_longer(cols = starts_with("cv_"), names_to = "empresa", values_to = "cv") %>%
  mutate(empresa = gsub("cv_", "", empresa))
ggplot(dados_cv_long, aes(x = empresa, y = cv, fill = empresa)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = c(
    "embraer" = "#003087", "azul" = "#00A1D6", "taesa" = "#228B22",
    "bbseguridade" = "#8B008B", "weg" = "#DC143C"
  )) +
  labs(
    title = "Coeficiente de Variação (CV) das Empresas",
    x = "Empresa",
    y = "Coeficiente de Variação"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Conclusão

A análise revela que Embraer foi a empresa com o melhor desempenho em 2024, oferecendo o maior retorno médio diário com o menor risco relativo e volatilidade moderada. Weg também apresentou bom desempenho, com retorno positivo e risco aceitável. BB Seguridade teve retorno positivo, mas com maior risco relativo. Azul foi a empresa com maior risco, combinando o pior retorno médio, maior volatilidade, e uma queda significativa no preço da ação. Taesa foi a mais estável, mas com leve perda, tornando-a menos atraente para retorno.

O gráfico de preços confirma a queda acentuada de Azul, crescimento de Embraer e Weg, estabilidade de Taesa, e alta moderada de BB Seguridade. Esses resultados destacam que Embraer é a melhor escolha para investidores buscando retorno com risco controlado, enquanto Azul é a mais arriscada devido à alta volatilidade e perdas. A análise reforça a importância de avaliar retorno, volatilidade e risco relativo na tomada de decisões de investimento.

As métricas e visualizações foram geradas com ferramentas ensinadas no curso, como dplyr para manipulação e ggplot2 para gráficos, garantindo consistência com os métodos aprendidos.