devtools::install_github("rstudio/bookdown")
knitr::write_bib(c(
  .packages(), 'bookdown', 'knitr', 'rmarkdown'
), 'packages.bib')
# configs
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, 
                      error = FALSE, message = FALSE)
base <- '../'
if(stringr::str_detect(getwd(), 'docs')) base <- '../'

rm_accent <- function(x) gsub("`", "", iconv(x, to = "ASCII//TRANSLIT"))

# pacotes
library(tidyr)
library(dplyr)
library(ggplot2)
library(purrr)
library(forcats)
library(readxl)
library(lubridate)
library(stringr)
library(readr)
library(survival)
# bases e funcoes
source(paste0(base, 'R/0-funcoes/adicionar_emp.R'))
cnj_empresarial <- readr::read_rds(paste0(base, "data/cnj_empresarial.rds"))
cnj_completa <- readr::read_rds(paste0(base, "data/tabela_cnj_completa.rds"))
d_tidy <- readr::read_rds(paste0(base, "data/d_tidy.rds"))
d_fcc <- readr::read_rds(paste0(base, "data/d_fcc.rds"))
# d_tidy_p <- adicionar_emp(d_tidy, cnj_empresarial, cnj_completa)
d_tidy_p <- readr::read_rds(paste0(base, "data/d_tidy_p.rds"))


# tabela do apendice
tab_cnj <- cnj_empresarial %>%
  roll() %>%
  select(folha, dispositivo_legal, artigo) %>%
  mutate_all(funs(str_trunc(., width = 35))) %>%
  select(assunto = folha,
         `Dispositivo Legal` = dispositivo_legal,
         Artigo = artigo)

# volume de processos
N0 <- ceiling(sum(d_tidy_p$p[d_tidy_p$p == 1]) / 3)
C <- ceiling(sum(d_tidy_p$p[d_tidy_p$p < 1]) / 3)
N <- ceiling(sum(d_tidy_p[['p']]) / 3)
Tec <- round(23/11, 2)
p <- .6
Ne <- ceiling(ceiling(sum(d_tidy_p[['p']]) / 3) * 23/11 / .6)
Nmax <- floor(sum(d_tidy_p$p > 0) / 3)
Nmax <- as.integer(Nmax)
Vmax <- floor(sum(d_tidy_p$p > 0) / 3 / 1800)

numeros_esperados <- d_tidy %>%
  inner_join(d_tidy_p, 'n_processo') %>%
  group_by(assunto) %>%
  summarise(`# Processos` = n(),
            `% Empresariais` = sum(p) / `# Processos`,
            `# Empresariais` = sum(p)) %>%
  filter(`# Processos` > 0, `% Empresariais` != 1,
         `% Empresariais` != 0) %>%
  rename(Assunto = assunto) %>%
  arrange(desc(`# Empresariais`)) %>%
  head(10) %>%
  # janitor::add_totals_row() %>%
  mutate(`% Empresariais` = scales::percent(`% Empresariais`),
         `# Empresariais` = round(`# Empresariais`)) %>%
  # mutate(`% Empresariais` = c(`% Empresariais`[-n()], '-')) %>%
  identity()

 # volume de trabalho
 d_fcc <- d_fcc %>%
   mutate(censura = as.numeric(pmax(julgado, baixa, recurso, sentenca)),
          censura = if_else(censura > 0, 1, 0)) %>%
   mutate(t_deci_total = n_deci_e_desp * t_deci)

 p_sobrev <- d_fcc %>%
   filter(tipo != "RJ") %>%
   with(survfit(Surv(t_deci_total, censura) ~ tipo)) %>%
   ggfortify:::autoplot.survfit(conf.int = F, surv.geom = 'line', censor = F) +
   scale_x_continuous(limits = c(0,250)) +
   theme_bw(12) +
   xlab("Total de tempo acumulado\ngasto em decisões e despachos (dias)") +
   ylab("Proporção de processos")

Contextualização

Questionamentos

Cifra oculta

\begin{figure} \includegraphics{imgs/tpu.png} \end{figure}

Questionamentos

Questionamentos

Mensuração

Classificações incorretas

numeros_esperados %>% 
  ungroup() %>% 
  mutate(`% Empresariais` = as.numeric(stringr::str_replace_all(`% Empresariais`, "%", "")),
         Assunto = ifelse(str_detect(Assunto, "Valor da Execução / Cálculo / Atualização"), "Cálculo/Atualização", Assunto),
         Assunto = ifelse(str_detect(Assunto, "DIREITO DO CONSUMIDOR"), "Direito Consumerista", Assunto),
         Assunto = ifelse(str_detect(Assunto, "Espécies de Títulos de Crédito"), "Títulos de Crédito", Assunto),
         Assunto = forcats::fct_reorder(Assunto, `% Empresariais`, fun = median)) %>% ggplot(aes(x = Assunto, y = `% Empresariais`/100)) +
  geom_bar(stat = 'identity', fill = 'royalblue', color = 'darkgray') +
  scale_y_continuous(labels = scales::percent, limits = c(0,0.02)) +
  coord_flip() +
  theme_minimal(17) +
  labs(x = "Assunto (Res. 46/CNJ)", y = "Percentual de processos ocultos") +
  ggtitle("Proporção de casos empresariais\nem cada classificação genérica") +
  geom_hline(yintercept = 0.01, color = 'red', size = 3)

Classificações incorretas

Viscosidade

$$\text{Viscosidade} = \text{Tempo total}$$

$$\text{Viscosidade} = \text{Tempo entre conclusos e decisões}$$

modelo_tempo_total <- d_fcc %>%
   filter(tipo != "RJ", tempo_total > 0) %>%
   with(survfit(Surv(tempo_total, censura) ~ tipo)) %>% 
   broom::tidy()

modelo_tempo_decisao <- d_fcc %>%
   filter(tipo != "RJ") %>%
   with(survfit(Surv(t_deci_total, censura) ~ tipo)) %>% 
   broom::tidy()

plota_grafico_dificuldade <- function(broom_model) {

  d_e <- broom_model %>% 
    filter(strata == "tipo=Empresarial")

  d_c <- broom_model %>% 
    filter(strata == "tipo=Comum")

  fuzzyjoin::difference_inner_join(d_e, d_c, 'estimate', max_dist = 0.01) %>%
  mutate(razao = time.x/time.y,
         dificuldade = as.factor(cut(1-estimate.x, breaks = 10, labels = FALSE,
                                     include.lowest = TRUE))) %>%
  group_by(dificuldade) %>%
  summarise(razao = mean(razao)) %>%
  ggplot(aes(x = as.numeric(dificuldade), y = razao)) +
  geom_col(fill = 'royalblue') + 
  theme_minimal(17)
}

Viscosidade

plota_grafico_dificuldade(modelo_tempo_total) +
  geom_hline(yintercept = 1, linetype = 1) +
  scale_y_continuous(limits = c(0, 1.5)) +
  labs(x = "Dificuldade do caso", y = "Razão entre as viscosidades") +
  ggtitle("Razão de viscosidade (tempo total) versus atipicidade")

Viscosidade

plota_grafico_dificuldade(modelo_tempo_decisao) +
  geom_hline(yintercept = 1, linetype = 1) +
  geom_hline(yintercept = 2, linetype = 2) +
  labs(x = "Dificuldade do caso", y = "Razão entre as viscosidades") +
  ggtitle("Razão de viscosidade (tempo de decisão) versus atipicidade")

Conclusões



abjur/tjspBook documentation built on May 10, 2019, 4:13 a.m.