Análises dos Dados de Autos de Infração aplicados pelo Ibama

Claudiano Cruz Neto

2021-07-13

Realizando Raspagem dos Dados via Ibamam Package

distribuidas <- Ibamam::get_dataset_ibamam("distribuidas", uf = c("BA", "MG", "SP", "RJ", "PE", "AM"))

Respondendo as perguntas chaves

Qual estado tem o maior número de multas distribuidas?

k <- distribuidas %>%
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  group_by(uf, Ano) %>% 
  mutate(Quantidade = n()/1000) %>% # por mil
  filter(Ano > 1995 & Ano < 2022) # filtrei apenas pra ajuste do eixo

  
q <- ggplot(k, aes(x = fct_reorder(uf, Quantidade),
              y = Quantidade,
              fill = tipoInfracao), is.na(TRUE)) +
  geom_col()

graf <- q + theme(legend.title = element_blank()) + 
    scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
  labs(
title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
  coord_flip()
plot(graf)

Qual estado tem o maior número de multas distribuidas por tipo de auto?

distribuidas %>%
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  group_by(Ano, uf) %>% 
  mutate(Quantidade = n()/1000) %>% 
  filter(Ano > 1995 & Ano < 2022) %>%  
  ggplot(aes(x = fct_reorder(uf, Quantidade, .desc = T), y = Quantidade, fill = tipoInfracao), is.na(TRUE)) +
  geom_col() +
  ylab("Quantidade Autos - em milhares") +
  xlab("Anos") +
  labs(title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
       subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
  scale_fill_brewer(palette="Paired") +
  scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
  theme_classic() +
  theme(legend.position = c(.8,.6),
        legend.justification = "center")

Qual Estado tem o maior montante de multas distribuidas (em milhões de reais ($)?

gp <- distribuidas %>% 
  mutate(Estados = fct_reorder(uf,
                               valorAuto,
                               .fun = sum)) %>% 
  group_by(Estados) %>%
  summarise(valor = sum(valorAuto)/1000000) %>%
  ggplot2::ggplot() + (aes(x = Estados, y = valor)) + 
  geom_bar(stat = "identity") +
  theme_classic() + 
  scale_y_continuous() +
  labs(
    Title = "Valor total das Multas aplicadas por Estado desde o início da série - em milhões de reais", 
    x = "Estados", 
    y = "Valor total das multas distribuidas")
plot(gp)

Multas distribuidas por ano

plot(d)

Número de multas distribuidas por tipos de auto por ano

distribuidas %>%
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  group_by(Ano) %>% 
  mutate(Quantidade = n()/1000) %>% # por mil
  filter(Ano > 1995 & Ano < 2022) %>%  # filtrei mas apenas pra ajuste do eixo
  ggplot(aes(x = Ano, y = Quantidade, fill = tipoInfracao, is.na(TRUE))) +
  geom_col(alpha = 0.9) +
   theme(plot.margin = unit(c(1,1,1,1),"cm")) +
    #     legend.key.height = unit(2, 'cm'),
    #     legend.key.width = unit(2, 'cm')
    #    ) +
  ylab("Quantidade Autos - em milhares") +
  xlab("Anos") +
  labs(
title = "Número de autos de infração aplicados, por Ano e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA",
fill= ""
    ) +
  scale_fill_brewer(palette = "Paired") +
  scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
  theme_classic()

Qual o tipo de infração mais comum nas multas distribuidas?

distribuidas %>% 
  group_by(tipoInfracao) %>% 
  summarise(Quantidade = n()/1000) %>%
  mutate(tipoInfracao = fct_reorder(tipoInfracao,
                                    Quantidade,
                                    .fun = sum)) %>%
  ggplot(aes(x = tipoInfracao, y = Quantidade)) +
  geom_col(fill='#304D63', alpha = 0.4) + 
  theme_classic() + 
  scale_y_continuous() +
  coord_flip() +
  labs(
    Title = "Quantidade de infração por tipo de Infração", 
    x = "", 
    y = "Número de total de multas - milhares")

Qual a distribuição de multas por tipo de enquadramento juridico?

distribuidas %>% 
  dplyr::group_by(enquadramentoJuridico) %>%
 # na.omit() %>% 
  dplyr::summarise(Quantidade = n()) %>%
  dplyr::arrange(desc(Quantidade)) %>% 
  head()
## # A tibble: 3 x 2
##   enquadramentoJuridico Quantidade
##   <fct>                      <int>
## 1 CPF                       148625
## 2 CNPJ                       41951
## 3 <NA>                       23090

Quais são as 30 empresas mais multadas pelo Ibama?

distribuidas %>% 
  group_by(nomeRazaoSocial) %>%
  filter(tipoAuto == "Multa") %>% 
  summarise(Quantidade = n()) %>%
  arrange(desc(Quantidade)) %>% 
  head(30)
## # A tibble: 30 x 2
##    nomeRazaoSocial                               Quantidade
##    <chr>                                              <int>
##  1 PETROLEO BRASILEIRO S/A - PETROBRAS                  818
##  2 PETROBRAS S.A. / E&P UN-RIO                          113
##  3 PETROBRAS - PETROLEO BRASILEIRO S.A.                  96
##  4 JOSÉ LOPES                                            93
##  5 JOSE ANTONIO DA SILVA                                 87
##  6 RUMO MALHA PAULISTA S.A.                              85
##  7 JOAO BATISTA DA SILVA                                 74
##  8 JOSE CARLOS DA SILVA                                  74
##  9 AVG SIDERURGIA LTDA.                                  69
## 10 NATURA INOVAÇÃO E TECNOLOGIA DE PRODUTOS LTDA         68
## # ... with 20 more rows

Qual a situação/status de débito das multas distribuidas (somente as 15 categorias mais frequentes)?

dt <- distribuidas %>% 
  group_by(situacaoDebito) %>%
  na.omit() %>% 
  summarise(Quantidade = n()) %>%
  arrange(desc(Quantidade)) %>% 
  head(25)
plot(graf)

Quantidades de multas aplicadas por Ano

d <- distribuidas %>%
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  group_by(Ano) %>% 
  summarise(Quantidade = n()) %>% 
  mutate(Ano = as.character(Ano))
plot(d)

Distribuição das multas por Estado

plot(p)

Autos de infraçao por enquadramento juridico e estados

plot(n1)

n2 <- distribuidas %>%
  select(uf, enquadramentoJuridico, dataAuto, tipoInfracao) %>% 
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  filter(Ano > 1996 & Ano < 2022) %>% 
  group_by(uf, enquadramentoJuridico, tipoInfracao) %>% 
  na.omit(enquadramentoJuridico) %>% 
  dplyr::summarise(Quantidade = n())
## `summarise()` has grouped output by 'uf', 'enquadramentoJuridico'. You can override using the `.groups` argument.

Autos de Infração por tipo de Infração, Brasil - 1996-2021

dtg <- distribuidas %>%
  mutate(Ano = lubridate::year(dataAuto)) %>% 
  group_by(uf, Ano) %>% 
  mutate(Quantidade = n()) %>%
  mutate(Quantidade = log10(Quantidade)) %>%
  filter(Ano > 1995 & Ano < 2022) %>%  # filtrei mas apenas pra ajuste do eixo
  ggplot(aes(x = fct_reorder(uf, Quantidade), y = Quantidade, fill = tipoInfracao)) +
  geom_col() +
   theme(legend.key.size = unit(0.5, 'cm')) +
  ylab("Quantidade Autos - em milhares") +
  xlab("Estados") +
  labs(title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
       subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
  scale_fill_brewer(palette="Paired") +
  scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
  theme_classic() + 
  coord_flip() + 
  theme(legend.position = c(.8,.5),
        legend.justification = "center")
plot(dtg)

Autos de Infração por tipo de Infração, Minas Gerais - 1996-2021

plot(dft)