1 Introdução

Os tribunais de contas são órgãos de controle externo vinculados ao poder legislativo responsáveis pela fiscalização da execução orçamentária e financeira e por contribuir com o aperfeiçoamento da Administração Pública em benefício da sociedade. A Secretaria-Geral de Controle Externo (SGE) do Tribunal de Contas do Estado do Rio de Janeiro (TCE-RJ) implementou recentemente em em sua estrutura uma metodologia de trabalho baseada em políticas públicas na qual cada uma de suas subsecretaria recém criadas é responsável por um campo de atuação específico como saúde, saneamento e mobilidade urbana, além de uma visão orientada a avaliação de políticas públicas.

Esse controle abrange diversos aspectos da gestão pública, como contratos, licitações, execução de obras, despesas e prestação de contas. O objetivo é identificar possíveis irregularidades, falhas ou práticas inadequadas que possam comprometer a correta utilização dos recursos.

Nesse contexto, o projeto em questão busca aplicar técnicas de análise exploratória de dados para elaborar indicadores que permitam o controle efetivo da entrada e saída mensal de processos, bem como o acompanhamento da formação de um “estoque” causado pela demora na análise e liberação desses processos.

2 Objetivo

O objetivo deste trabalho é resultado da necessidade da Subsecretaria de Infraestrutura de lidar com um considerável estoque de processos herdados após a sua criação, exigindo uma abordagem estratégica para otimizar a eficiência e eficácia do fluxo de trabalho para redução imediata do estoque recebido. Com o intuito de agilizar o despacho dos processos e reduzir o estoque acumulado, tornou-se fundamental estabelecer parâmetros de controle que permitissem uma gestão mais efetiva.

3 Análise exploratória de dados(EDA)

A análise exploratória de dados envolve a exploração de dados para obter uma compreensão mais profunda dos dados e dos padrões nos dados usando uma combinação de

  1. Métodos estatísticos, como resumos estatísticos
  2. Visualização dos dados
  3. Análise de dados para abordar questões exploratórias

O exame de resumos estatísticos pode fornecer insights numéricos sobre as especificidades de cada uma dessas questões. Como alternativa, os gráficos podem ser usados para explorar visualmente os dados, fornecendo potencialmente mais informações do que uma resumos estatísticos.

3.1 Preparação dos dados

A análise será focada em algumas variáveis principais. Estas variáveis incluem as entradas mensais de processos, ou seja, a quantidade de novos processos recebidos em cada mês pelas coordenadorias. Além disso, também serão consideradas as saídas mensais de processos, que representam a quantidade de processos concluídos e encerrados em cada mês.

Outra variável importante é o “estoque”, que se refere à acumulação de processos ainda em andamento devido à demora na análise e liberação. Esses processos constituem o estoque acumulado ao longo do tempo.

Além disso, a data de entrada de cada processo também será considerada como uma variável relevante para a análise. Ela nos permite rastrear a evolução temporal dos processos e identificar possíveis padrões ou tendências ao longo do período analisado.

Por fim, a coordenadoria responsável por cada processo também será levada em conta, uma vez que diferentes coordenadorias podem ter características e desempenhos distintos na análise e liberação dos processos.

Ao considerar essas variáveis principais, a análise terá como objetivo compreender a dinâmica dos processos nas coordenadorias e identificar possíveis pontos de melhoria para otimizar a análise e liberação dos mesmos.

3.1.1 Visão geral do conjunto de dados

# importar os dados
evolucao_estoque <- readxl::read_excel('evolucao_estoque.xlsx')

# vizualizar os dados
glimpse(evolucao_estoque)
## Rows: 3,218
## Columns: 19
## $ natureza   <chr> "Relatório de Auditoria Governamental", "Tomada de Contas",…
## $ qtdantgupa <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdantguax <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdantsd   <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ qtdantdp   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdantdd   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdentrasd <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdentradp <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdentradd <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdsaisd   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdsaidp   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdsaidd   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdposgupa <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdposguax <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdpossd   <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ qtdposdp   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ qtdposdd   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ CAD        <chr> "CAD-D", "CAD-D", "CAD-M", "CAD-M", "CAD-M", "CAD-M", "CAD-…
## $ Data       <dttm> 2022-01-31, 2022-01-31, 2022-01-31, 2022-01-31, 2022-01-31…

3.1.2 Seleção de variáveis

evolucao_estoque %>% 
  select(natureza, 
         Entrada = qtdentrasd,
         saida = qtdsaisd,
         estoque = qtdpossd, 
         CAD , 
         Data)
## # A tibble: 3,218 × 6
##    natureza                      Entrada saida estoque CAD   Data               
##    <chr>                           <dbl> <dbl>   <dbl> <chr> <dttm>             
##  1 Relatório de Auditoria Gover…       0     0       1 CAD-D 2022-01-31 00:00:00
##  2 Tomada de Contas                    0     0       1 CAD-D 2022-01-31 00:00:00
##  3 Atos e Contratos                    0     0       1 CAD-M 2022-01-31 00:00:00
##  4 Prestação de Contas                 0     0       1 CAD-M 2022-01-31 00:00:00
##  5 Recurso                             0     0       1 CAD-M 2022-01-31 00:00:00
##  6 Relatório de Auditoria Gover…       0     0       1 CAD-M 2022-01-31 00:00:00
##  7 Relatório de Auditoria Gover…       0     0       1 CAD-M 2022-01-31 00:00:00
##  8 Relatório de Auditoria Gover…       0     0       1 CAD-M 2022-01-31 00:00:00
##  9 Tomada de Contas                    0     0       1 CAD-O 2022-01-31 00:00:00
## 10 Relatório de Auditoria Gover…       0     0       1 CAD-O 2022-01-31 00:00:00
## # ℹ 3,208 more rows

3.1.3 Transformação dos dados

Na primeira etapa de transformação, o conjunto original de dados foi reduzido para um conjunto que apresenta o quantitativo de entrada e saída de processos, bem como o estoque acumulado. Os dados foram agrupados pela data e a coordenadoria correspondente.

evolucao_estoque_df <- 
  evolucao_estoque   %>%   
  select(natureza_agrupada = natureza,
         entrada = qtdentrasd,
         saida = qtdsaisd, 
         estoque = qtdpossd, Data,CAD)   %>% 
  summarise(entrada_total = sum(entrada),
            saida_total = sum(saida),
            estoque_total = sum(estoque),
            .by =c(Data,CAD)) %>% 
  arrange(Data) %>% 
  filter(Data > '2021-06-30')

datatable(evolucao_estoque_df) 

3.2 Elaboração de tabelas de resumos estatísticos

A Tabela 1 descreve informações sobre a variabilidade dos processos. Ela inclui medidas de posição, como média e mediana, que indicam o valor central dos dados. Além disso, são apresentadas medidas de dispersão, como desvio padrão, que quantificam o quão os dados estão dispersos ao redor da média.

kable(evolucao_estoque_df %>%
        summarise(entrada_média = round(mean(entrada_total),1),
                  entrada_mediana = round(median(entrada_total),1),
                  entrada_desvioPadrao = round(sd(entrada_total),1), 
                  entrada_total = sum(entrada_total),
                  .by = CAD)) %>% kable_styling(bootstrap_options)
CAD entrada_média entrada_mediana entrada_desvioPadrao entrada_total
CAD-S 24.2 20.5 15.3 533
CAD-M 28.0 24.0 10.0 616
CAD-O 21.7 20.0 5.9 477
CAD-D 11.6 11.0 3.5 256

Com base nessas observações, pode-se inferir que CAD-M é a coordenadoria com a maior média e o maior total de entradas, sugerindo uma demanda mais alta em comparação com as outras coordenadorias. Além disso, a variabilidade nas entradas mensais é maior em CAD-S, indicando que essa coordenadoria lida com flutuações mais acentuadas na quantidade de processos recebidos.

Esses dados podem ser úteis para identificar possíveis áreas de melhoria ou desafios específicos em cada coordenadoria, direcionando estratégias de alocação de recursos e planejamento para lidar com a demanda de processos de forma eficiente.

3.3 Elaboração da Tabela de Flutuação de Estoque.

A tabela 2 resume os dados para compreender a variação no estoque de processos em cada coordenadoria, indicando possíveis mudanças na eficiência dos processos ou no fluxo de trabalho. Uma redução no estoque pode indicar um maior ritmo de análise e liberação de processos, enquanto um aumento pode apontar para possíveis gargalos ou demoras no processamento. Essas informações podem auxiliar na identificação de áreas de melhoria e no planejamento de ações para otimizar o fluxo de trabalho e a gestão dos processos em cada coordenadoria.

kable(evolucao_estoque_df %>% 
        summarise( estoque_inicial = first(estoque_total),
                   estoque_final = last(estoque_total),
                   diferença_absoluta = estoque_final -  estoque_inicial,
                   diferença_relativa = ((estoque_final- estoque_inicial)/estoque_inicial)*100    ,
                   diferença_relativa = paste0(round(diferença_relativa,1),"%"),      .by = CAD)) %>%
  kable_styling(bootstrap_options = c('striped','hover','condensed','responsive'))
CAD estoque_inicial estoque_final diferença_absoluta diferença_relativa
CAD-S 142 22 -120 -84.5%
CAD-M 133 26 -107 -80.5%
CAD-O 124 21 -103 -83.1%
CAD-D 25 28 3 12%

Com base nessas observações, pode-se inferir que houve melhorias no processamento dos processos nas coordenadorias, resultando em uma redução significativa do estoque acumulado. No entanto, é importante investigar mais a fundo as causas da variação observada em CAD-D, que teve um aumento percentual no estoque. Isso pode indicar a necessidade de identificar possíveis gargalos ou ineficiências no processamento nessa coordenadoria específica.

Esses dados fornecem insights sobre o desempenho das coordenadorias em relação ao estoque de processos, permitindo identificar áreas de melhoria e direcionar esforços para otimizar o fluxo de trabalho e a gestão dos processos.

3.4 Visualição dos dados

Os próximos gráficos apresentados serão gráficos de linha, visando fornecer uma visão mais clara da evolução de processos em cada coordenadoria e auxiliar na identificação de possíveis padrões ou anomalias.

3.4.1 gráfico de entrada de processos

O primeiro gráfico apresentado fornece uma visão mais clara da evolução do estoque ao longo do tempo em cada coordenadoria.

grafico_animado <- 
  evolucao_estoque_df %>%  ggplot( aes(Data, estoque_total, color =  CAD)) +
  geom_line(linewidth = 1, alpha = 0.5)+
  geom_point(size = 1) + 
  transition_reveal(date(Data))+
  labs(title =   'Data: {frame_along}')

animate(grafico_animado)

Observa-se que o estoque herdado foi administrado de forma eficiente pelas coordenadorias da subsecretaria, com destaque para as coordenadorias de Mobilidade e Saneamento. No entanto, a coordenadoria de desestatização, possivelmente devido à complexidade de seus processos, não reduziu de maneira constante e significativa o seu estoque herdado.

3.4.2 Gráfico de evolução do estoque

O segundo gráfico apresenta uma compreensão visual mais precisa da evolução de entrada de processos em cada coordenadoria.

ggplotly(evolucao_estoque_df   %>%  
  ggplot(aes(Data,entrada_total,color = CAD)) + 
  geom_line(size = 1.5, alpha = 0.5 ) +
  geom_point(size = 1))

Tanto a CAD-M quanto a CAD-S lidaram com um fluxo mais acentuado de processos.

3.4.3 Relação entre entradas e saídas

Para aprofundar a análise da evolução dos processos ao longo do tempo, o gráfico 2 traça linhas que relacionam a entrada e saída de processos. Essa representação gráfica permitirá identificar padrões, tendências e variações nos volumes de processos, fornecendo insights relevantes sobre a eficiência operacional e o estoque acumulado.

ggplotly(
  evolucao_estoque_df  %>%
    ggplot(aes( x = Data)) +
    geom_line(aes(y = entrada_total),size = 1.1,alpha = 0.7, color = "#FF1058") +
    geom_point(aes(y = entrada_total), color = "#FF1058",size = 1.7) +
    geom_line(aes(y = saida_total),size = 1.1,alpha = 0.7, color = "#119E32") +
    geom_point(aes(y = saida_total),color = "#119E32",size = 1.7) +
    facet_wrap(~CAD, ncol = 2) ) 

Como pode ser observado no Gráfico 1 de Evolução dos Processos, fica evidente no gráfico 3 que as coordenadorias de MOBILIDADE e SANEAMENTO experimentaram períodos com uma saída de processos significativamente maior do que a entrada. Esses picos resultaram em uma queda acentuada no estoque acumulado de processos.

4 Elaboração de Índices

Com o objetivo de aprimorar a análise dos processos e obter uma visão abrangente do desempenho, serão desenvolvidos índices personalizados. Esses índices permitirão uma avaliação precisa e comparativa dos resultados, identificando áreas de atenção e direcionando melhorias estratégicas para alcançar resultados otimizados.

4.1 Gráfico do Índice de produtividade

O Gráfico 4 exibe o índice de produtividade, que representa a relação entre a entrada e saída de processos, de cada mês. Essa medida permite verificar quantos processos são concluídos em relação à quantidade de processos recebidos. Por meio desse indicador, é possível obter insights sobre a eficiência do fluxo de trabalho, identificando a capacidade de resposta e o desempenho do sistema em lidar com a demanda.

ggplotly(evolucao_estoque_df   %>%   
  mutate(indice = saida_total/entrada_total) %>% 
  mutate(índice_médio = mean(indice), .by = CAD) %>% 
  ggplot(aes(Data,indice,color = CAD)) + 
  geom_line(size = 1.5, alpha = 0.5 ) +
  geom_point(size = 1) +
  facet_wrap(~CAD, ncol = 2) +
  geom_text(aes(label = round(indice,2)), 
            hjust = -0.2, vjust = 0.5, 
            color = "black", size = 2.5) +
  geom_hline( aes(yintercept = índice_médio),
              linetype = "dashed", color = "red"))

A linha tracejada representa o índice médio de produtividade. Ao analisar o gráfico, é possível observar que houve um desempenho positivo por parte das coordenadorias, com destaque para a CAD-Saneamento, que registrou um pico de saída de processos seis vezes maior do que a entrada. Esses resultados indicam uma eficiência significativa no processamento e conclusão dos casos analisados pelas coordenadorias, demonstrando sua capacidade de lidar com a demanda de trabalho.

4.2 Gráfico do indice de estoque

No Gráfico 4, é exibido o índice de evolução do estoque, que representa a queda percentual do estoque em relação ao tempo. A linha tracejada indica que não houve variação no estoque em relação ao mês anterior. Essa medida possibilita a análise da eficiência das coordenadorias na redução do estoque acumulado. Com essa mensuração, é possível avaliar o progresso na gestão do estoque, identificando se as estratégias adotadas estão resultando em uma redução efetiva e sustentável. Esse indicador pode desempenhar um papel importante no monitoramento do desempenho e orientar a tomada de decisões visando a otimização do fluxo de trabalho e a melhoria contínua dos processos.

ggplotly(evolucao_estoque_df   %>%    group_by(CAD)  %>%  
  mutate( indice_estoque =  ((estoque_total-lag(estoque_total))/lag(estoque_total))*100 )  %>% 
  ggplot(aes(Data,indice_estoque,color = CAD)) + 
  geom_line(size = 1.5, alpha = 0.5 ) +
  geom_point(size = 2)+
  geom_hline( yintercept = 0,linetype = "dashed", color = "red") +
  facet_wrap(~CAD, ncol = 2) )

Na coordenadoria de Obras observou-se algumas reduções acentuadas no percentual do estoque, indicando um desempenho positivo nessa área. Por outro lado, a coordenadoria de Desestatização enfrentou desafios, resultando em aumentos percentuais em diversos pontos do gráfico. Na coordenadoria de Mobilidade, ocorreu uma queda significativa do estoque devido a alguns picos de redução percentual. Já na coordenadoria de Saneamento, o estoque foi gerenciado de forma mais estável, mantendo um equilíbrio sustentável ao longo do tempo. Essas constatações destacam a importância de implementar estratégias eficazes para a gestão do estoque e identificam áreas que requerem atenção adicional para melhorar a eficiência operacional.