Professor Ermeson Carneiro de Andrade

Analisando dados do data set do Tribunal de Contas do Estado de Pernambuco das licitações ano de 2021

DADOS DE LICITAÇÃO DE 2021

INTRODUÇÃO

O Tribunal de Contas do Estado de Pernambuco (TCE-PE) disponibiliza, em seu portal de dados abertos, bases completas sobre as licitações realizadas pelos órgãos estaduais e municipais, permitindo o acompanhamento detalhado dos processos licitatórios e dos contratos deles decorrentes. Entre essas bases, destacam-se os dados de licitações do ano de 2021, que reúnem informações sobre o município responsável, a unidade gestora, a modalidade da licitação, o estágio e a situação do processo, bem como valores estimados e outras características relevantes do objeto contratado. Esses dados são coletados e estruturados pelo módulo de Licitações e Contratos (LICON), com o objetivo de viabilizar fiscalização, transparência e controle social das compras públicas em todo o estado.

No contexto de Pernambuco, o volume de recursos movimentados pelas licitações municipais em 2021 é significativo e impacta diretamente políticas públicas nas áreas de saúde, educação, infraestrutura, assistência social e outras funções de governo. Entretanto, para a maior parte dos cidadãos e mesmo para muitos gestores, esses dados permanecem em formatos pouco acessíveis, exigindo conhecimentos técnicos para serem importados, limpos e analisados de forma sistemática. Assim, surge o problema central deste projeto: transformar a base bruta de licitações municipais de 2021, disponibilizada pelo TCE-PE, em um conjunto de informações organizadas e visualmente compreensíveis, que permitam entender melhor como os recursos licitados se distribuem entre modalidades, municípios e estágios dos processos.

Este trabalho utiliza a base “Licitações TCE 2021”, disponível no Portal de Dados Abertos de Pernambuco, que consolida os processos licitatórios registrados junto ao TCE-PE ao longo daquele ano, em formato adequado para análise automatizada. A metodologia proposta envolve importar o arquivo de 2021 para o ambiente R, padronizar nomes de variáveis, tratar campos de datas e valores monetários, selecionar as variáveis de interesse e criar indicadores derivados, como total licitado por município e por modalidade. Em seguida, são aplicadas técnicas de análise exploratória de dados para construir tabelas-resumo e visualizações que destaquem padrões de concentração de valores, perfil das modalidades mais utilizadas e possíveis desigualdades entre municípios.

Ao descrever de forma estruturada os dados oficiais de licitações de 2021 do TCE-PE e ao organizar essas informações em gráficos e tabelas interpretáveis, a análise pretende auxiliar diferentes públicos: gestores municipais que desejam comparar seu município com outros, órgãos de controle interessados em identificar concentrações atípicas de valores, pesquisadores que estudam gasto público e cidadãos que buscam acompanhar de maneira mais informada o uso dos recursos coletivos. Dessa forma, o relatório contribui tanto para o aprendizado em ciência de dados quanto para o fortalecimento da cultura de transparência e de uso efetivo dos dados abertos de licitações em Pernambuco.

PREPARAÇÃO DOS DADOS

Pacotes requeridos

Nesta análise serão utilizados alguns pacotes do ecossistema R que facilitam a importação, transformação e visualização dos dados de licitações. O pacote readr (dentro do tidyverse) é utilizado para importar arquivos em formato CSV de forma rápida e confiável. O pacote dplyr oferece um conjunto de funções para seleção, filtragem, agregação e criação de novas variáveis de maneira clara e legível. O pacote ggplot2 é responsável pela criação de gráficos, permitindo construir visualizações personalizadas a partir da gramática dos gráficos. Além disso, o pacote janitor auxilia na limpeza e padronização dos nomes das variáveis, enquanto lubridate simplifica o tratamento de datas presentes no conjunto de dados.

Carregar esses pacotes antecipadamente garante que o leitor saiba exatamente quais dependências são necessárias para replicar a análise em outro ambiente. Assim, qualquer pessoa que possua o R instalado poderá reproduzir o fluxo completo do projeto apenas garantindo a instalação prévia desses pacotes.

Preparação dos dados

Os dados deste projeto foram obtidos a partir do portal de dados abertos do Tribunal de Contas do Estado de Pernambuco (TCE-PE), na seção “Bases de dados completas” e no conjunto referente às licitações municipais de 2021. A extração utilizada corresponde a um arquivo consolidado em formato CSV (2021.csv), gerado a partir dos registros oficiais do módulo de Licitações e Contratos, que reúne informações sobre os processos licitatórios realizados pelos municípios pernambucanos ao longo do ano de 2021.

O propósito original desses dados é permitir o acompanhamento dos estágios das licitações e contratos pelos órgãos de controle, gestores e pela sociedade em geral, registrando para cada processo variáveis como identificação da licitação, município, unidade gestora, modalidade, situação, datas importantes e valores estimados. O arquivo de 2021 contém diversas colunas, incluindo variáveis categóricas (por exemplo, município, modalidade, situação), variáveis numéricas (como valores monetários e códigos) e campos de data. Alguns campos apresentam valores ausentes ou formatos distintos, como números com vírgula decimal ou datas armazenadas como texto, o que torna necessária uma etapa de tratamento prévio antes da análise.

No presente trabalho, a preparação dos dados envolve três etapas principais. Primeiro, o arquivo CSV é importado para o R e os nomes das colunas são padronizados para um formato mais simples, em letras minúsculas e sem espaços, facilitando a manipulação posterior. Em seguida, os campos de valor estimado e de datas são convertidos para os tipos adequados, transformando textos em números e objetos de data, de modo que possam ser agregados, filtrados e visualizados corretamente. Por fim, são selecionadas apenas as variáveis mais relevantes para o objetivo da análise, descartando colunas redundantes ou pouco informativas.

Após essas etapas de limpeza, obtém-se um conjunto de dados mais enxuto e coerente com o problema proposto, contendo, entre outras, as variáveis município, modalidade, situação, data de abertura e valor estimado. Em vez de trabalhar diretamente com o arquivo bruto, que é mais extenso e heterogêneo, a análise passa a utilizar essa versão organizada, o que reduz o risco de erros de interpretação e facilita a construção de tabelas-resumo e gráficos. As variáveis escolhidas permitem, de forma integrada, investigar como as licitações municipais de 2021 se distribuem entre municípios, modalidades e faixas de valor, atendendo aos objetivos exploratórios do projeto.

Análise do dataset 2021

O conjunto de dados utilizado neste projeto é formado por uma tabela com aproximadamente 106 mil linhas e 37 colunas, o que indica um volume expressivo de registros de licitações municipais ao longo de 2021. As 37 variáveis disponíveis abrangem tanto informações de identificação e contexto do processo licitatório (por exemplo, NumeroDocumentoAjustado, RazaoSocial, codigoPL, codigoUG, UG, CODIGOMUNICIPIO, NumeroProcesso, AnoProcesso) quanto características descritivas e de classificação, como NomeNatureza, NomeModalidade, NumeroModalidade, AnoModalidade, DescricaoObjeto, EspecificacaoObjeto, SituacaoLicitacao, EstagioLicitacao, CaracteristicaObjeto, ObjetoConformeEdital, CodigoNatureza, CodigoDescricaoObjeto, CodigoSituacaoLicitacao, CodigoEstagioLicitacao e CodigoObjeto.

Além disso, o conjunto inclui variáveis de data (DataPublicacaoHomologacao, DataEmissaoEdital, DataPublicacaoHabilitacao, DataSessaoAbertura) e de valor monetário ou orçamentário (TotalAdjudicadoLicitacao, TotalAdjudicadoLicitante, ValorOrcamentoEstimativo, DotacaoOrcamentaria), bem como variáveis relacionadas ao resultado do certame, como ResultadoHabilitacao, Adjudicada e QtdeLicitantes, e ainda o campo LinkArquivo, que referencia documentos associados à licitação. Essa combinação de variáveis permite explorar, de forma bastante detalhada, o comportamento das licitações municipais de Pernambuco em 2021, tanto sob a perspectiva de valores e quantidades quanto em relação às modalidades, estágios e características dos objetos licitados.

library(readr)
library(ggplot2)
## Warning: pacote 'ggplot2' foi compilado no R versão 4.5.2
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
library(scales)
## 
## Anexando pacote: 'scales'
## O seguinte objeto é mascarado por 'package:readr':
## 
##     col_factor
# importar o CSV
dados <- read.csv2("C:/Users/julio/OneDrive/Área de Trabalho/Licitacoes/2021.csv",
                   header = TRUE,
                   sep = ";",
                   dec = ",",
                   stringsAsFactors = FALSE)

# confira os nomes das colunas
names(dados)
##  [1] "NumeroDocumentoAjustado"   "RazaoSocial"              
##  [3] "codigoPL"                  "codigoUG"                 
##  [5] "UG"                        "NomeNatureza"             
##  [7] "NomeModalidade"            "NumeroModalidade"         
##  [9] "AnoModalidade"             "DescricaoObjeto"          
## [11] "EspecificacaoObjeto"       "SituacaoLicitacao"        
## [13] "EstagioLicitacao"          "DataPublicacaoHomologacao"
## [15] "TotalAdjudicadoLicitacao"  "TotalAdjudicadoLicitante" 
## [17] "ResultadoHabilitacao"      "Adjudicada"               
## [19] "QtdeLicitantes"            "CodigoModalidade"         
## [21] "NumeroProcesso"            "AnoProcesso"              
## [23] "DataEmissaoEdital"         "DataPublicacaoHabilitacao"
## [25] "CaracteristicaObjeto"      "ObjetoConformeEdital"     
## [27] "LinkArquivo"               "ValorOrcamentoEstimativo" 
## [29] "CodigoNatureza"            "CodigoDescricaoObjeto"    
## [31] "CodigoSituacaoLicitacao"   "CodigoEstagioLicitacao"   
## [33] "CodigoObjeto"              "CODIGOMUNICIPIO"          
## [35] "DataSessaoAbertura"        "DotacaoOrcamentaria"      
## [37] "FundamentoLegal"

ANÁLISE DE EXPLARATÓRIA DE DADOS

dados <- read.csv2("C:/Users/julio/OneDrive/Área de Trabalho/Licitacoes/2021.csv",
header = TRUE,
sep = ";",
dec = ",",
stringsAsFactors = FALSE)
knitr::opts_chunk$set(
echo = TRUE,
root.dir = "C:/Users/julio/OneDrive/Área de Trabalho/Licitacoes"
)
dados <- read.csv2("C:/Users/julio/OneDrive/Área de Trabalho/Licitacoes/2021.csv",
header = TRUE,
sep = ";",
dec = ",",
stringsAsFactors = FALSE)
library(readr)
library(dplyr)
library(ggplot2)

dados <- read.csv2("C:/Users/julio/OneDrive/Área de Trabalho/Licitacoes/2021.csv",
                   header = TRUE,
                   sep = ";",
                   dec = ",",
                   stringsAsFactors = FALSE)

graf_modalidade <- dados |>
  count(NomeModalidade, name = "qtde_licitacoes") |>
  arrange(desc(qtde_licitacoes))

ggplot(graf_modalidade,
       aes(x = reorder(NomeModalidade, qtde_licitacoes),
           y = qtde_licitacoes)) +
  geom_col(fill = "steelblue") +
  coord_flip() +
  labs(
    x = "Modalidade",
    y = "Quantidade de licitações",
    title = "Quantidade de licitações por modalidade - 2021"
  )

Esse gráfico de barras apresenta a quantidade de licitações realizadas em 2021 para cada modalidade registrada na base de dados. Cada barra representa uma modalidade e sua altura indica o número de processos licitatórios associados àquele tipo de procedimento ao longo do ano. A visualização permite identificar rapidamente quais modalidades são mais utilizadas pelos municípios, evidenciando se há concentração em poucos tipos de licitação ou se o uso é mais distribuído entre diferentes modalidades.

library(dplyr)
library(ggplot2)
library(scales)

dados$ValorOrcamentoEstimativo <- as.numeric(gsub(",", ".", dados$ValorOrcamentoEstimativo))

media_modalidade <- dados |>
group_by(NomeModalidade) |>
summarise(
media_valor_orcado = mean(ValorOrcamentoEstimativo, na.rm = TRUE),
n = n()
) |>
arrange(desc(media_valor_orcado))

ggplot(media_modalidade,
aes(x = reorder(NomeModalidade, media_valor_orcado),
y = media_valor_orcado)) +
geom_col(fill = "steelblue") +
coord_flip() +
scale_y_continuous(labels = label_currency(prefix = "R$ ",
big.mark = ".",
decimal.mark = ",")) +
labs(
x = "Modalidade",
y = "Valor orcado medio",
title = "Valor orcado medio por modalidade de licitacao - 2021"
) +
theme(
plot.title = element_text(hjust = 0.5, size = 16),
axis.title = element_text(size = 14),
axis.text.x = element_text(size = 6),
axis.text.y = element_text(size = 8)
)  
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_col()`).

Esse gráfico de barras apresenta o valor orçado médio das licitações realizadas em 2021 para cada modalidade registrada no banco de dados. Cada barra corresponde a uma modalidade e sua altura indica o valor médio estimado para os processos daquele tipo, em reais, permitindo comparar rapidamente quais modalidades costumam envolver licitações de maior porte financeiro. A visualização destaca não só diferenças de volume entre as modalidades, mas também ajuda a identificar em quais delas os valores orçados tendem a ser mais altos ou mais modestos, complementando as análises baseadas em totais e quantidades de licitações.

library(dplyr)
library(ggplot2)
library(scales)

dados$ValorOrcamentoEstimativo <- as.numeric(gsub(",", ".", dados$ValorOrcamentoEstimativo))

ug_valor <- dados |>
group_by(UG) |>
summarise(
valor_total_orcado = sum(ValorOrcamentoEstimativo, na.rm = TRUE)
) |>
arrange(desc(valor_total_orcado)) |>
slice_head(n = 10)

ggplot(ug_valor,
aes(x = reorder(UG, valor_total_orcado),
y = valor_total_orcado)) +
geom_col(fill = "darkblue", width = 0.6) +
coord_flip() +
scale_y_continuous(
labels = label_currency(prefix = "R$ ",
big.mark = ".",
decimal.mark = ","),
expand = expansion(mult = c(0, 0.05))
) +
labs(
x = "Unidade Gestora (UG)",
y = "Valor orcado total",
title = "Top 10 UGs por valor orcado total das licitacoes - 2021"
) +
theme(
plot.title = element_text(hjust = 0.5, size = 16),
axis.title = element_text(size = 14),
axis.text.x = element_text(size = 6),
axis.text.y = element_text(size = 8)
)

Este gráfico apresenta as dez Unidades Gestoras (UGs) com maior valor orçado total em licitações realizadas em 2021, permitindo identificar quais órgãos concentram os maiores volumes financeiros no período. Cada barra horizontal representa uma UG e sua extensão indica o montante total orçado em reais, evidenciando diferenças claras entre unidades com grande volume de contratações e aquelas com participação mais modesta dentro do grupo selecionado. Essa visualização auxilia a compreender a distribuição dos recursos licitados entre diferentes órgãos, destacando possíveis concentrações de gasto que podem ser exploradas em análises mais detalhadas no relatório.​

library(dplyr)
library(ggplot2)
library(scales)

# garantir valor numérico
dados$ValorOrcamentoEstimativo <- as.numeric(gsub(",", ".", dados$ValorOrcamentoEstimativo))

carpina_ug <- dados |>
  filter(UG == "Prefeitura Municipal de Carpina")

carpina_modalidade <- carpina_ug |>
  group_by(NomeModalidade) |>
  summarise(
    valor_total_orcado = sum(ValorOrcamentoEstimativo, na.rm = TRUE),
    n = n()
  ) |>
  arrange(desc(valor_total_orcado))

ggplot(carpina_modalidade,
       aes(x = reorder(NomeModalidade, valor_total_orcado),
           y = valor_total_orcado)) +
  geom_col(fill = "darkgreen") +
  coord_flip() +
  scale_y_continuous(labels = label_currency(prefix = "R$ ",
                                             big.mark = ".",
                                             decimal.mark = ",")) +
  labs(
    x = "Modalidade",
    y = "Valor orcado total",
    title = "Prefeitura Municipal de Carpina - valor orcado por modalidade - 2021"
  ) +
theme(
plot.title = element_text(hjust = 0.9, size = 14),
axis.title = element_text(size = 14),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 10)
)

Escolhi analisar de forma destacada a Unidade Gestora “Prefeitura Municipal de Carpina” porque resido nesse município e acompanho de perto sua realidade administrativa. Isso torna os resultados mais significativos para mim, pois consigo relacionar os valores orçados e as modalidades de licitação diretamente com serviços e políticas públicas que fazem parte do meu dia a dia.

library(dplyr)
library(ggplot2)
library(scales)

dados$ValorOrcamentoEstimativo <- as.numeric(gsub(",", ".", dados$ValorOrcamentoEstimativo))

carpina_ug <- dados |>
  filter(UG == "Prefeitura Municipal de Carpina")

carpina_objeto_valor <- carpina_ug |>
  group_by(DescricaoObjeto) |>
  summarise(
    valor_total_orcado = sum(ValorOrcamentoEstimativo, na.rm = TRUE),
    n = n()
  ) |>
  arrange(desc(valor_total_orcado)) |>
  slice_head(n = 25)

ggplot(carpina_objeto_valor,
       aes(x = reorder(DescricaoObjeto, valor_total_orcado),
           y = valor_total_orcado)) +
  geom_col(fill = "darkgreen") +
  coord_flip() +
  scale_y_continuous(labels = label_currency(prefix = "R$ ",
                                             big.mark = ".",
                                             decimal.mark = ",")) +
  labs(
    x = "Descricao do objeto",
    y = "Valor orcado total",
    title = "Prefeitura de Carpina - objetos com maior valor orcado (top 10) - 2021"
  ) +
theme(
plot.title = element_text(hjust = 0.9, size = 12),
axis.title = element_text(size = 14),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 8)
)

Este gráfico mostra, para a Prefeitura Municipal de Carpina em 2021, quais descrições de objeto concentram os maiores valores orçados nas licitações. Cada barra representa um tipo de objeto (por exemplo, fornecimento de materiais, serviços, obras ou equipamentos) e sua extensão indica o montante total previsto em reais para todas as licitações daquela categoria ao longo do ano. A visualização permite identificar com rapidez quais tipos de contratação absorvem mais recursos do orçamento municipal, destacando os principais focos de despesa previstos nas licitações da prefeitura no período analisado.

library(dplyr)
library(ggplot2)
library(scales)

# garantir valor numerico
dados$ValorOrcamentoEstimativo <- as.numeric(gsub(",", ".", dados$ValorOrcamentoEstimativo))

# filtrar apenas a UG de Carpina
carpina_ug <- dados |>
  filter(UG == "Prefeitura Municipal de Carpina")

# valor total por natureza (top 10)
carpina_natureza <- carpina_ug |>
  group_by(NomeNatureza) |>
  summarise(
    valor_total_orcado = sum(ValorOrcamentoEstimativo, na.rm = TRUE),
    n = n()
  ) |>
  arrange(desc(valor_total_orcado)) |>
  slice_head(n = 10)

ggplot(carpina_natureza,
       aes(x = reorder(NomeNatureza, valor_total_orcado),
           y = valor_total_orcado)) +
  geom_col(fill = "steelblue") +
  coord_flip() +
  scale_y_continuous(labels = label_currency(prefix = "R$ ",
                                             big.mark = ".",
                                             decimal.mark = ",")) +
  labs(
    x = "NomeNatureza",
    y = "Valor orcado total",
    title = "Prefeitura de Carpina - valor orcado por natureza de despesa (top 10) - 2021"
  )

Ao filtrar apenas as licitações da Prefeitura Municipal de Carpina e agrupar os processos pela variável NomeNatureza, o gráfico mostra quais naturezas de despesa concentram os maiores valores orçados em 2021. Cada barra representa um tipo de natureza (por exemplo, material de consumo, serviços de terceiros, obras e instalações) e sua altura indica o montante total previsto para aquela categoria ao longo do ano. Essa correlação entre o município e as naturezas de despesa ajuda a entender em quais tipos de gasto orçamentário a prefeitura de Carpina direciona mais recursos em suas licitações, indicando prioridades de custeio e investimento no período analisado.

CONCLUSÃO

A análise exploratória realizada ao longo do projeto mostrou que os dados de licitações municipais de Pernambuco em 2021, disponibilizados em formato aberto pelo TCE-PE, permitem construir um panorama consistente sobre como diferentes órgãos e municípios planejam e distribuem seus recursos. A partir da importação do arquivo completo de licitações, foi possível limpar e padronizar variáveis, sumarizar informações por modalidade, Unidade Gestora, natureza de despesa e município, e produzir visualizações que evidenciam tanto o volume quanto a concentração dos valores licitados em diferentes dimensões.

Os gráficos elaborados indicaram quais modalidades concentram maior número de processos e maiores montantes financeiros, quais UGs aparecem entre as que mais licitam, como se comportam os valores orçados em termos de distribuição e quais tipos de objeto e naturezas de despesa se destacam em casos específicos, como o da Prefeitura Municipal de Carpina. Ao focar em Carpina, município onde o autor reside, a exploração permitiu conectar os resultados quantitativos com a realidade local, destacando áreas de maior demanda de gasto e tipos de contratação mais frequentes. Em conjunto, o projeto atendeu ao objetivo de usar dados abertos reais para demonstrar um fluxo completo de ciência de dados em R — da importação e preparação à análise gráfica e textual — reforçando o potencial dessas bases para apoiar transparência, controle social e estudos sobre contratações públicas em Pernambuco

BASE DE DADOS

Os dados utilizados neste projeto foram obtidos na seção de “Bases de dados completas” do portal de dados abertos do Tribunal de Contas do Estado de Pernambuco (TCE-PE), disponível em: https://www.tce.pe.gov.br/internet/index.php/dados-abertos/bases-de-dados-completas. Nessa página, o TCE-PE disponibiliza extrações diretas de suas bases internas em arquivos de grande porte, permitindo que pesquisadores e cidadãos trabalhem com conjuntos de dados completos relacionados à execução orçamentária, financeira, licitações e contratos.

Entre as bases disponibilizadas, foi selecionado o conjunto referente a “Licitações e licitantes municipais”, no formato XML, para o ano de 2021. Esses arquivos contêm, de forma estruturada, informações detalhadas sobre os processos licitatórios realizados pelos municípios pernambucanos, incluindo dados sobre a licitação em si (como modalidade, situação, datas e valores estimados) e sobre os licitantes participantes. Os arquivos XML de 2021 serão importados e convertidos para um formato tabular no R, servindo como base principal para as etapas de limpeza, organização e análise exploratória realizadas ao longo do projeto.