library(tidyverse)
library(janitor)
devtools::load_all()
No relatório preliminar 01, mostramos como a base de dados foi baixada e o conteúdo da base depois após a fase de arrumação de dados. Neste documento, apresentaremos análises preliminares sobre duas quantidades de interesse na pesquisa: i) perfil dos condenados do CNC e ii) valores envolvidos nos processos (desagregado por divesos critérios).
A Tabela 1.1 mostra a quantidade de pessoas e processos por tipo de pessoa. Podemos observar que é bem maior a quantidade de pessoas físicas na base.
tidy_cnc %>%
mutate(tipo_pessoa = if_else(tipo_pessoa == 'F', 'Física', 'Jurídica')) %>%
group_by(tipo_pessoa) %>%
summarise(n_pessoas = n_distinct(id_pessoa),
n_processos = n_distinct(id_processo)) %>%
janitor::add_totals_row() %>%
knitr::kable(booktabs = TRUE,
caption = 'Quantidade de pessoas jurídicas e físicas e processos envolvidos.')
| tipo_pessoa | n_pessoas | n_processos |
|---|---|---|
| Física | 29679 | 26767 |
| Jurídica | 862 | 772 |
| Total | 30541 | 27539 |
Agora vamos estudar a distribuição geográfica das pessoas. A Figura 1.1 mostra o volume de pessoas por estado. Obsevamos uma concentração maior em São Paulo, Minas Gerais e nos estados da região sul, além de Rondônia. Exceto por Rondônia, o resultado é esperado, já que grande parte da população fica nos estados citados.
data(br_uf_map, package = 'abjutils')
p <- tidy_cnc %>%
distinct(id_pessoa, .keep_all = TRUE) %>%
count(id = uf) %>%
mutate(n = cut(n, c(0, 100, 200, 300, 800, max(n)), dig.lab=5)) %>%
inner_join(br_uf_map) %>% {
ggplot(.) +
geom_map(aes(x = long, y = lat, map_id = id, fill = n),
colour = 'gray30', size = .1, alpha = .8,
map = ., data = .) +
coord_equal() +
scale_fill_brewer(palette = 'PuRd') +
theme_void()
}
p
Figure 1.1: Volume de pessoas por Unidade Federativa.
A Figura 1.2 mostra a taxa de pessoas por cem mil habitantes em cada estado. O resultado é surpreendente. Destacam-se o estados do Acre e Rondônia, concentrando 17 e 24 pessoas por cem mil habitantes, respectivamente. Outros estados com alta taxa são Roraima, Amapá, Tocantins, Rio Grande do Norte, Sergipe, Espírito Santo, Distrito Federal e Santa Catarina.
data(pnud_uf, package = 'abjutils')
data(cadmun, package = 'abjutils')
cadmun %<>% distinct(cod, uf) %>% mutate_all(as.character)
pnud_uf %<>% filter(ano == 2010) %>% select(uf, popt) %>%
mutate(uf = as.character(uf)) %>%
inner_join(cadmun, c('uf' = 'cod')) %>%
select(id = uf.y, popt)
p <- tidy_cnc %>%
distinct(id_pessoa, .keep_all = TRUE) %>%
count(id = uf) %>%
inner_join(pnud_uf, 'id') %>%
mutate(tx = n / popt * 100000) %>%
mutate(tx = cut(tx, c(0, 1, 3, 5, 10, max(tx)), dig.lab = 3,
ordered_result = TRUE)) %>%
inner_join(br_uf_map) %>% {
ggplot(.) +
geom_map(aes(x = long, y = lat, map_id = id, fill = tx),
colour = 'gray30', size = .1, alpha = .8,
map = ., data = .) +
scale_fill_brewer(palette = 'PuRd') +
coord_equal() +
theme_void()
}
p
Figure 1.2: Pessoas por cem mil habitantes em cada Unidade Federativa.
Na base de dados temos três variáveis sobre valores: i) pagamento de multas, ii) ressarcimento integral do dano e iii) perda de bens ou valores acrescidos ilicitamente ao patrimônio. Vamos analisar cada um desses valores separadamente.
A Tabela 2.1 mostra a proporção de condenações em que houve multa. Obseve que tivemos multas em aproximadamente um terço dos casos. No entanto, somente 9.817 casos possuem valores de multa maiores ou iguais a zero ou menores que um bilhão.
tidy_cnc %>%
replace_na(list(teve_multa = 'não')) %>%
janitor::tabyl(teve_multa, sort = TRUE) %>%
janitor::add_totals_row() %>%
mutate(percent = scales::percent(percent)) %>%
knitr::kable(booktabs = TRUE,
caption = 'Proporção de multas na base.')
| teve_multa | n | percent |
|---|---|---|
| não | 24269 | 67.5% |
| sim | 11708 | 32.5% |
| Total | 35977 | 100.0% |
Como o valor é uma variável bastante assimétrica, é necessário elaborar algumas estatísticas especiais para comparação de valores. A Figura 2.1 compara os percentis1 dos valores das multas para pessoas físicas e jurídicas. É possível observar que os valores envolvidos para pessoas jurídicas é sistematicamente maior que os valores envolvidos para pessoas físicas. No futuro, vamos realizar esse tipo de comparação para diversas subpopulações da base de dados.
p <- tidy_cnc %>%
filter(teve_multa == 'sim', vl_multa < 1e9, vl_multa > 10) %>%
group_by(tipo_pessoa) %>%
do(n = nrow(.),
r = quantile(.$vl_multa, probs = 0:100 / 100)) %>%
unnest(n) %>%
unnest(r) %>%
group_by(tipo_pessoa) %>%
mutate(id = 1:n()) %>%
ungroup() %>%
mutate(tipo_pessoa = if_else(tipo_pessoa == 'F', paste0('Física (n = ', n, ')'),
paste0('Jurídica (n = ', n, ')'))) %>%
select(-n) %>%
spread(tipo_pessoa, r) %>%
ggplot(aes_(x = as.name(names(.)[2]), y = as.name(names(.)[3]))) +
geom_point() +
geom_abline(slope = 1, intercept = 0) +
scale_x_log10(labels = scales::dollar) +
scale_y_log10(labels = scales::dollar) +
theme_bw()
plotly::ggplotly(p)
Figure 2.1: Gráfico quantil-quantil do valor da multa por tipo de pessoa (escala log).
A tabela 2.2 mostra as 20 pessoas com maior quantidade de multas. Observe que apesar de observarmos pessoas com pelo menos 12 multas cada, 97% do valor de multas está concentrado nas multas restantes.
tidy_cnc %>%
filter(teve_multa == 'sim', vl_multa < 1e9) %>%
mutate(nome = sprintf('%06s / %s', id_pessoa, toupper(nm_pessoa))) %>%
mutate(nome = forcats::fct_infreq(nome),
nome = forcats::fct_lump(nome, n = 20)) %>%
group_by(nome) %>%
summarise(n_multas = n(), vl_total = sum(vl_multa)) %>%
mutate(`% total` = n_multas / sum(n_multas)) %>%
mutate(`% valor total` = vl_total / sum(vl_total)) %>%
# arrange(desc(n_multas)) %>%
add_totals_row() %>%
mutate(`% valor total` = scales::percent(`% valor total`)) %>%
mutate(`% total` = scales::percent(`% total`)) %>%
mutate(vl_total = scales::dollar(vl_total)) %>%
knitr::kable(booktabs = TRUE,
caption = 'Pessoas com maiores quantidade de multas, valor agregado e proporção do total.')
| nome | n_multas | vl_total | % total | % valor total |
|---|---|---|---|---|
| 510 / MARCOS PEREZ | 35 | $2,237,100 | 0.3% | 0.1% |
| 518 / JOÃO TADEU SAAB | 28 | $85,895 | 0.2% | 0.0% |
| 760 / NELSON NICACIO DE LIMA | 25 | $5,387,138 | 0.2% | 0.3% |
| 2716 / RAIMUNDO JOÃO PIRES SALDANHA NETO | 22 | $1,545,760 | 0.2% | 0.1% |
| 1917 / SÉRGIO PINAFFI | 21 | $90,310 | 0.2% | 0.0% |
| 5342 / RILDO ALAOR TEIXEIRA DA SILVA | 20 | $268,530 | 0.2% | 0.0% |
| 562 / ANTONIO NUNES DA SILVA | 20 | $1,118,895 | 0.2% | 0.1% |
| 5945 / LUIZ ANTONIO TREVISAN VEDOIN | 20 | $1,541,755 | 0.2% | 0.1% |
| 147 / MÁRIO LUCIO LUCATELLI | 19 | $1,892,315 | 0.2% | 0.1% |
| 5943 / DARCI JOSE VEDOIN | 18 | $971,955 | 0.2% | 0.1% |
| 3895 / GILBERTO CARVALHO | 17 | $56,870 | 0.1% | 0.0% |
| 6433 / NAURO SERGIO MUNIZ MENDES | 17 | $4,468,886 | 0.1% | 0.2% |
| 295 / VALTERCIDES MONTEIRO | 14 | $297,227 | 0.1% | 0.0% |
| 1050 / CARLOS SIQUEIRA RIBEIRO | 13 | $431,255 | 0.1% | 0.0% |
| 274 / GILSON DE ASSUNÇÃO | 13 | $2,079,740 | 0.1% | 0.1% |
| 53 / RUBENS MASSUCIO RUBINHO | 13 | $18,751,080 | 0.1% | 1.0% |
| 1029 / CLEBEL ÂNGELO MÁRCIO PEREIRA | 12 | $166,429 | 0.1% | 0.0% |
| 142 / JOSÉ CARLOS MOREIRA | 12 | $5,787,396 | 0.1% | 0.3% |
| 2218 / JOSÉ PAULO NOVAES | 12 | $425,433 | 0.1% | 0.0% |
| 2219 / AUREA CEREZINE DE SOUZA VILLAS BOAS | 12 | $410,533 | 0.1% | 0.0% |
| Other | 11344 | $1,760,828,013 | 96.9% | 97.3% |
| Total | 11707 | $1,808,842,516 | 100.0% | 100.0% |
A tabela 2.3 mostra os 20 casos com maior valor de multas. Observe que somente esses casos concentram quase metade do valor total das multas.
tidy_cnc %>%
filter(teve_multa == 'sim', vl_multa < 1e9) %>%
select(nome = nm_pessoa, tipo_pessoa, vl_multa) %>%
mutate(nome = toupper(nome)) %>%
arrange(desc(vl_multa)) %>%
mutate(`% acu. vl total` = cumsum(vl_multa) / sum(vl_multa)) %>%
# mutate(nome = forcats::fct_reorder(nome, fun = sum, vl_multa),
# nome = forcats::fct_lump(nome, n = 20)) %>%
unite(aux, nome, tipo_pessoa) %>%
add_totals_row() %>%
separate(aux, c('nome', 'tipo_pessoa'), sep = '_', fill = 'right') %>%
mutate(`% acu. vl total` = if_else(nome == 'Total', NA_real_, `% acu. vl total`)) %>%
mutate(`% acu. vl total` = scales::percent(`% acu. vl total`)) %>%
mutate(vl_multa = scales::dollar(vl_multa)) %>%
slice(c(1:20, nrow(.))) %>%
replace_na(list(tipo_pessoa = '')) %>%
mutate(`% acu. vl total` = if_else(`% acu. vl total` == 'NA%', '', `% acu. vl total`)) %>%
knitr::kable(booktabs = TRUE,
caption = 'Condenações com multas de maior valor com informação do tipo de pessoa e proporção acumulada da soma dos valores.')
| nome | tipo_pessoa | vl_multa | % acu. vl total |
|---|---|---|---|
| PROJETO FILIPENSES MANUTENÇÃO DE RESULTADOS | J | $101,947,537 | 5.6% |
| VALMIR FELIX TEIXEIRA | F | $100,731,322 | 11.2% |
| LINKNET TECNOLOGIA E TELECOMUNICAÇÕES LTDA | J | $70,225,149 | 15.1% |
| ALEXANDRE AUGUSTO DE SOUZA | F | $70,225,149 | 19.0% |
| SERGIO HENRIQUE DE SOUZA | F | $70,225,149 | 22.9% |
| LIMIRIO MARTINS PARREIRA | F | $54,662,281 | 25.9% |
| JOSÉ MAURY ALVES MARTINS | F | $54,642,412 | 28.9% |
| AÍLTON DE OLIVEIRA | F | $43,708,242 | 31.3% |
| VANDERLE ANTONIO RIBEIRO | F | $32,606,320 | 33.1% |
| CLAUDIO MIGUEL JOSE | F | $31,442,916 | 34.9% |
| MARCELO GONÇALVES MAIA DE CARVALHO | F | $26,442,699 | 36.3% |
| ANTONIO FIGUEIREDO DE OLIVEIRA | F | $25,387,527 | 37.7% |
| DURVAL BARBOSA RODRIGUES | F | $24,166,087 | 39.1% |
| RICARDO LIMA ESPINDOLA | F | $24,166,087 | 40.4% |
| JOSE GOMES PINHEIRO NETO | F | $24,166,087 | 41.7% |
| LAZARO SEVERO ROCHA | F | $24,166,087 | 43.1% |
| INSTITUTO CANDANGO DE SOLIDARIEDADE-ICS | J | $24,166,087 | 44.4% |
| JAIR THOMAZ | F | $21,033,869 | 45.6% |
| JAMIL ADIB ANTONIO | F | $17,171,007 | 46.5% |
| RAFAEL TOBIAS DOS SANTOS CARVALHO | F | $17,171,007 | 47.5% |
| Total | $1,808,842,516 |
um percentil de \(x\)% é uma quantidade que faz com que \(x\)% das observações da amostra esteja abaixo desse valor.↩