Você pode acessar aqui a primeira parte desse texto.
Nessa segunda parte vamos (definitivamente) mostrar uma experimentação com dados públicos do Portal da Transparência. Para o desenvolvedor de software talvez seja mais interessante se basear no Portal Brasileiro de Dados Abertos, um portal baseado no ckan que disponibiliza APIs para consumo de dados por aplicações. Se te interessa, você pode acessar aqui um estudo preliminar sobre quão adequados são alguns portais de dados abertos para desenvolvimento de aplicações.
O trabalho aqui descrito propõe um método baseado em análise de redes complexas, ou como é mais conhecida, análise de redes sociais (SNA – social network analysis), para se inferir associações entre fornecedores de Governo com base em seus padrões de venda, extrapolando para um modelo de classificação que, espera-se, seja sensível a idoneidade desses fornecedores.
Motivações
Uma das motivações para a realização desse trabalho foi certamente a movimentação recente da sociedade, que aparenta estar desenvolvendo uma nova percepção sobre a transparência pública como requisito para atuar na esfera pública. A figura abaixo mostra uma das ocupações populares de 2013.

Infelizmente observamos hoje, após 2 anos, que esta mesma sociedade que se movimentou “não apenas pelos R$0,20” não evoluiu no sentido de estruturar sua demanda e mapeá-las para ações objetivas e inteligentes de combate às práticas políticas criminosas, sendo a corrupção por dinheiro a mais icônica delas. Tenho certeza que alguma coisa mudou no Brasil, mas a plaquinha da moça na foto parece ter menos força hoje.
Outra motivação para o trabalho é a ideia generalizada, praticamente um senso comum, de que os processos de aquisição de Governo estão dominados por associações ilegais entre fornecedores. Abaixo uma notícia do Wall Street Journal mencionando a operação Lava Jato da PF.

Compras do Governo Federal
As compras de Governo são aquisições de produtos e serviços que envolvem repasses financeiros para fornecedores, sejam pessoas físicas ou jurídicas. Estas compras são reguladas pela Lei nº 8666/1993, que estabelece normas para a realização de licitações e contratos.
Estamos interessados em investigar como fornecedores de Governo podem estar associados e se há evidências de associação ilícita.
As associações ilícitas também estão tipificadas na legislação brasileira, Lei nº 8137/1990, que define crimes contra a ordem tributária, econômica e contra as relações de consumo.
Mas como conduzir essa investigação?
Uma primeira coisa é ter acesso aos dados públicos sobre compras de Governo. O segundo passo é aplicar um método de ciência de dados (veja um fluxo básico abaixo).
Os dois passos, contudo, pressupõem uma boa hipótese a ser testada, que em nosso caso se converte nas seguintes perguntas:
- Existem associações entre fornecedores? Eles agem sozinhos?
- Existem padrões de vendas para Governo que ajudem a discriminar fornecedores idôneos de inidôneos?
Uma terceira pergunta seria: existe algum tipo de hierarquia entre os fornecedores? Mas decidimos deixá-la de fora nesse primeiro experimento.
Modelos de Redes de Fornecedores de Governo
Utilizamos os dados históricos do Portal da Transparência sobre gastos de Governo (pagamentos diretos e cartões corporativos) e seus cadastros CEIS (cadastro de empresas inidôneas e suspensas) e CEPIM (cadastro de entidades sem fins lucrativos impedidas). Ou seja, temos os dados de gastos de Governo e as informações sobre empresas inidôneas.
O primeiro passo de modelagem foi a criação de redes de afiliações de fornecedores. Aqui as afiliações são os órgãos de Governo e os indivíduos portadores de cartões corporativos. Uma ligação entre um empresa e uma afiliação (ex: órgão) é ponderada pelo montante financeiro repassado ao longo do tempo por esta afiliação para aquela empresa. Os fornecedores (empresas) neste primeiro momento não estão diretamente relacionados. Veja imagem ilustrativa abaixo.

Mas veja, mesmo que ainda não tenhamos os relacionamentos diretos entre as empresas, podemos captar a similaridade entre elas através de seus padrões de venda para os órgãos!
Então não foi difícil construir uma métrica de similaridade entre empresas que parte do princípio de que o grau de similaridade entre dois fornecedores é proporcional ao número de afiliações compartilhadas, ponderadas pela similaridade dos totais de valores transferidos.
(Vale a pena ler de novo o parágrafo acima, se você não entendeu. Eu tive que escrevê-lo para evitar uma equação que, mesmo simples, poderia desanimar a leitura do leigo. Me desculpem os “cientistas de plantão” que gostariam de ver uma fórmula matemática.)
Então para cada par de fornecedores calculamos o grau de similaridade. Veja a imagem ilustrativa abaixo.

Neste momento esse grafo é totalmente conectado, ou seja, existe uma ligação entre cada par de empresas. Mas se determinarmos uma similaridade mínima entre empresas, como ficaria o grafo? Veja abaixo o mesmo grafo ilustrativo com um corte de ligações com similaridade menor que 10%.

Você já sabe, nós temos as informações das empresas que são idôneas e inidôneas (os cadastros CEIS e CEPIM). E se rotularmos as empresas do grafo acima? Vamos fazer o seguinte, pintamos as empresas idôneas de azul e as inidôneas de vermelho. Veja o resultado abaixo.

A esperança é a de que os grupos formados na rede de associações entre empresas seja discriminativo em relação à idoneidade, como é ilustrado acima. Será que dá?
Observando o histórico de vendas de uma nova empresa fornecedora, como a empresa 5 abaixo, podemos nos perguntar sobre a probabilidade de idoneidade dela.

Não é massa?
Beleza, até agora foi só ilustração. Mas não desista da leitura, porque agora vamos ver “na vera”.
Experimentos
Relembrando nossa hipótese a ser testada: os grupos de empresas ligadas no grafo são discriminantes em relação a idoneidade.
Dividi em dois tipos de experimentos. No primeiro tipo, utilizei todos os dados que já falei. No segundo tipo aumentei a especificidade e rigor dos experimentos, fazendo o seguinte: eliminei os dados de cartões corporativos, tirando pessoas físicas da jogada e deixando só órgãos de Governo; fiz o balanceamento das classes de idôneos e inidôneos, pois o desbalanceamento de classes interfere muito na inferência do desempenho real de classificação; usei dados de CEIS e CEPIM mais atuais; e na eliminação de ligações entre empresas não usei apenas a similaridade mínima, mas também uma outra métrica conhecida como betweenness de aresta.
As seguintes ferramentas de análise foram usadas: plataforma R e biblioteca NetworkX do Python.
Experimentos do tipo 1
A figura abaixo exibe os grupos de empresas idôneas (azuis) e inidôneas (vermelhas) com ligações que possuem 100% de similaridade. É, você leu corretamente, 100% de similaridade! Eu achava extremamente improvável que houvesse qualquer par de fornecedores de Governo com exatos 100% de similaridade. Para um par desses qualquer, isso significa que as duas empresas venderam bens ou serviços para exatamente os mesmos órgãos públicos, exatamente a mesma quantidade de vezes, e exatamente com o mesmo valor! A pergunta que a sociedade – ou os órgãos de controle – tem que fazer é: que grupos de empresas 100% similares são esses?? Não deixe de notar que há vários grupos com mais de duas empresas…

Perceba também que os grupos são discriminativos em relação a idoneidade! Obviamente é esperado algum erro, já que todo modelo é uma aproximação imperfeita da realidade. Mas veja que os grupos são quase totalmente azuis ou vermelhos. Vamos baixar a similaridade mínima para 75%? Veja o resultado na figura abaixo.

Muito bom, os grupos ficaram maiores e ainda discriminativos em relação a idoneidade! Baixando ainda mais a similaridade mínima, para 50%… veja abaixo.

OK, grupos ainda discriminativos. E com 25% de similaridade mínima? Veja.

Tudo dando certo. Parece que o modelo, mesmo para similaridades baixas, consegue capturar o padrão que diferencia empresas idôneas de inidôneas. Mas vamos “chutar o pau da barraca”? O que acontece se baixarmos a similaridade mínima para apenas 5%? Olha só.

Acho que encontramos o “super-grupo” das empresas inidôneas. Uma outra interpretação para os erros do modelo (quando empresas idôneas são misturadas com inidôneas no mesmo grupo) deve gerar o seguinte questionamento: será que essas empresas idôneas ligadas às inidôneas não merecem uma olhada mais de perto? Será que são mesmo idôneas?
Obviamente o modelo aqui proposto não é prova de nada. Mas em um cenário de investigação, não é difícil enxergar que ele pode contribuir para diminuir o espaço de busca (por exemplo, diminuindo o custo de implantação de escutas telefônicas 🙂 ).
Os resultados não são apenas visuais, também calculamos numericamente o desempenho de classificação do modelo (que no caso é a homogeneidade média dos grupos encontrados), e todos ficaram com acerto acima de 99,9%.
Experimentos do tipo 2
Mesmo com o rigor colocado nesse segundo grupo de experimentos, ainda achamos empresas com 100% de similaridade. Veja a figura abaixo.

Observe que agora há mais misturas. Isso se deve ao balanceamento de classes, que o número de idôneas ser igual ao número de inidôneas. Isso torna o modelo mais aplicável à realidade.
Agora para 75% de similaridade.

Mesmo com o balanceamento de classes os grupos ainda ficaram bastante discriminativos em relação a idoneidade. Veja figura abaixo para 50% de similaridade mínima.

Agora para 25% de similaridade mínima.

Uma coisa que seria legal de fazer, além de usar o modelo como classificador, seria estudar os padrões de conectividade. Conseguimos visualmente identificar alguns.
Abaixo estão os grupos formados com restrição de similaridade mínima de 10%.

Conforme exibido na tabela abaixo, o maior acerto de classificação foi obtido com restrição de similaridade mínima de 10%, que nos deu 89,06% de acerto.
Com o balanceamento de classes era realmente esperada essa queda no desempenho de classificação, mas ao mesmo tempo ele é muito mais realístico. Para se ter uma ideia mais clara do que é esse acerto, para cada 10 empresas que são submetidas ao classificador, ele é capaz de acertar aproximadamente 9 quanto a sua idoneidade.
Conclusões
Depois de alguns resultados promissores confesso que dá vontade de escrever uma bela conclusão. Mas a verdade é que ainda não devemos concluir nada, isso é apenas um começo possível.
Fica claro, tanto nos resultados visuais quanto numéricos, que podemos sim criar modelos de ajudem a desvendar a estrutura das associações entre organizações que vendem para Governo. A sociedade e órgãos de controle poderiam se beneficiar com essa e muitas outras ferramentas de análise de dados.
Uma observação importante no que diz respeito aos invariantes encontrados é que os agentes públicos desempenham um papel central na legalidade das transações financeiras entre Governo e seus fornecedores. Isso está pressuposto na primeira fase de modelagem, onde órgãos são tratados como afiliações. Aqui enviesamos a análise para as associações entre empresas, mas os agentes públicos que estão por trás das transações também merecem, em trabalho posterior, atenção.
O modelo econômico aqui posto é bastante simples. Empresas ganham licitações e recebem dinheiro do Governo por serviços prestados. Tenho certeza que há modelos econômicos mais completos, que podem ser explorados futuramente. Quem sabe uma exploração das fases do processo licitatório (não apenas o resultado final) também ajude a desvendar outras estruturas de associação, ou fortalecer as já descobertas.
Uma parte desse trabalho foi publicado e apresentado na trilha de Governo do SBSI 2015, em co-autoria com meu amigo Gustavo da Gama Torres. Também foi publicado e apresentado na íntegra no tema “relação governo e sociedade” do Conserpro 2015 (congresso anual do SERPRO), onde foi premiado, em co-autoria com Gustavo Torres e Sérgio Dias.
Espero que o texto tenha gerado boas reflexões e, principalmente, motivado o leitor a dar a sua contribuição técnica desinteressada, tão importante nesses dias de crise política.
That’s all folks!
[…] ← Sobre associações entre fornecedores de Governo: parte 2 […]
CurtirCurtir