Big data no Planalto - QConSP...00000002 5 lápis MPOG 05/04/09 XYZ R$ 4,50 00000002 5 lápis MPOG...
Transcript of Big data no Planalto - QConSP...00000002 5 lápis MPOG 05/04/09 XYZ R$ 4,50 00000002 5 lápis MPOG...
Big data no Planalto
Como o minera
datasets gigantescos para
reprimir crimes
Thiago Marzagão QConSP 2016
Que crimes?
Mau uso do dinheiro público:
fraudes diversas em licitações (ex.: prefeito que contrata própria empresa);
fraudes diversas envolvido $ público (ex.: prefeito que recebe bolsa-família);
fraudes tributárias (sonegação, compensações indevidas);
cartel;
…outros.
Cartel
“Acerto” entre concorrentes é crime.
Apesar disso é prática comum no Brasil.
Especialmente em compras públicas.
Impossível analisar cada licitação.
É preciso automatizar o processo.
Cartel
O que é cartel?
Lei 12.529/11, art. 36.
Exemplos:
combinar preços
combinar quantidades
dividir clientes/mercados
Cartel
Quais são as penas?
Lei 12.529/11, art. 37. Lei 8.137/90, art. 4°.
Pessoa jurídica: multa de até 20% do faturamento annual ou até R$ 2 bilhões,
dependendo do caso.
Pessoa física: multa de até 20% da multa aplicada à empresa. Prisão por até
5 anos.
Quem investiga cartel?
Como identificar um cartel?
Insight da Teoria dos Jogos: colaboração é mais provável quando o jogo é
repetido.
= risco maior está nos produtos/serviços licitados com mais freqüência;
= é preciso identificar quais empresas são co-licitantes com freqüência.
Dados brutos
licitação resumo órgão data empresa lance
00000001 10 lápis MPOG 18/03/09 XYZ R$ 5,00
00000001 10 lápis MPOG 18/03/09 ABC R$ 4,50
00000002 5 lápis MPOG 05/04/09 XYZ R$ 4,50
00000002 5 lápis MPOG 05/04/09 ABC R$ 5,00
00000003 15 lápis MPOG 25/05/09 XYZ R$ 5,00
00000003 15 lápis MPOG 25/05/09 ABC R$ 4,50
00000004 10 lápis MPOG 10/06/09 XYZ R$ 4,50
00000004 10 lápis MPOG 10/06/09 ABC R$ 5,00
... ... ... ... ... ...
LICITAÇÕES
Dados brutos
CNPJ CPFCNPJ início fim %
00000001 00000003 01/01/05 18/03/09 50,0
00000001 00000004 31/07/05 0,1
00000002 00000001 25/07/08 20,0
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
VÍNCULOS SOCIETÁRIOS
Dados brutos
CPF CNPJ início fim cargo salário
00000001 00000001 01/01/05 31/07/05 gerente 5000
00000002 00000001 25/07/08 vendedor 3000
00000003 00000002 03/10/07 18/03/09 diretor 7500
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...
VÍNCULOS EMPREGATÍCIOS
Neo4j
Open source.
Comunidade ótima.
Neo4j: community support
Migração SQL Server -> Neo4j
Neo4j: o que dá pra fazer?
Quem são os 5 co-licitantes mais freqüentes da empresa X?
Todos os sócios, diretos e indiretos, da empresa X?
Qual a participação total da empresa X na empresa Y, incluindo
participações diretas (X→Y) e indiretas (X → Z → Y)?
Quais as pessoas a quem a pessoa X está vinculada (via emprego ou
sociedade) c/ até 3 graus de separação?
Neo4j é mais rápido que SQL Server p/ esse tipo de consulta. E as queries são
mais simples de escrever.
Neo4j: sintaxe
MATCH (n)-[r*1..3]-(m)
WHERE (n.CPF IN ['01234567890'])
RETURN r
py2neo
Neo4j: Windows vs Linux
Como visualizar os grafos?
vis.js
vis.js
vis.js
vis.js
CÉREBRO
CÉREBRO
Interface gráfica p/ as ferramentas de mineração de dados.
Roda na intranet do CADE.
Desenvolvido in-house.
CÉREBRO
Idéia é democratizar o acesso a ferramentas de mineração de dados e
assim “empoderar” investigadores/analistas.
É preciso muita experimentação – e muitos erros.
data product bacana != data product útil
“fator uau” não prediz o sucesso de uma funcionalidade.
CÉREBRO
CÉREBRO
CÉREBRO
Versátil: web, mineração, tudo.
Dá pra ir “de 0 a 100” em pouco
tempo.
Open source.
CÉREBRO
Minimalista.
Django seria overkill.
Open source.
CÉREBRO
App no ar com apenas uma linha de
comando!
CÉREBRO
Excelente p/ manipulação de dados.
Reshaping, joins, etc.
Estatísticas descritivas.
Estatística básica.
Conversões de formatos.
CÉREBRO
Um dos membros do time prefere R.
Com rpy2 é fácil “plugar” a parte
dele.
CÉREBRO
CÉREBRO
Pacotes R:
dplyr, reshape2 (manipulação de dados)
stringr (processamento de textos)
igraph (grafos)
forecast, TSA, zoo, rugarch (p/ séries temporais)
foreach, doParallel (operações multi-core)
Amelia (imputação de dados)
CÉREBRO
CADE já tinha a licença.
SQL Server 2016 vai rodar R
nativamente.
NÃO-CÉREBRO
Não usamos no CÉREBRO.
Mas usamos p/ tarefas diversas de
aprendizado de máquina.
Ex.: prever classe do produto licitado
com base em sua descrição.
https://github.com/thiagomarzagao/
catmatfinder
NÃO-CÉREBRO
IPython p/ análises exploratórias.
Como identificar um cartel?
Impossível analisar cada licitação manualmente:
~300/dia, só no governo federal.
Solução: minerar.
Idéia inicial: algoritmos de classificação (SVM, random forest, etc).
“Deixa os dados falarem.”
Como identificar um cartel?
Problema: não há dados de treinamento.
Poucas condenações por cartel em compras públicas até hoje.
Difícil treinar um algoritmo de classificação c/ menos de 10 casos em uma
classe
e com dezenas ou centenas de milhares de falsos negativos (sim, dezenas ou
centenas de milhares)
mesmo c/ oversampling, pesos, etc
Solução: Teoria dos Jogos
Solução: Teoria dos Jogos
A licitação é um jogo.
Nós podemos modelar matematicamente esse jogo.
Como são os lances quando não há cartel?
Como são os lances quando há cartel?
E nós podemos testar estatisticamente os resultados.
Na ausência de cartel, qual a probabilidade de observarmos esses lances?
Existe toda uma literatura sobre isso (behavioral screening).
Exemplo: Bajari & Ye (2003)
Exemplo: Bajari & Ye (2003)
Exemplo: Bajari & Ye (2003)
Informalmente:
Os lances precisam ser independentes entre si. O lance da empresa A não
pode nos ajudar a prever o lance da empresa B. O lance da empresa A não
pode depender de quais são as outras empresas na licitação.
Se esse requerimento é violado, temos uma suspeita de cartel.
Catch: não dá p/ testar uma licitação individualmente. A lógica do teste é
baseada num conjunto de licitações.
Exemplo: Bajari & Ye (2003)
teste de Kolmogorov-Smirnoff
(distribuição esperada vs distribuição observada)
Lição
Nem tudo em mineração de dados é regressão/classificação/clusterização.
Pq open source?
No começo cogitamos usar soluções
proprietárias. Mas logo desistimos.
$$$$$$$$
“E se adicionássemos tal ou qual
funcionalidade?”
“Ok, mas temos licenças adicionais?”
Pouca flexibilidade.
Outros órgãos?
Fracionamento de compras
Lei 8.666/93
Compras públicas geralmente requerem licitação.
Mas apenas p/ compras acima de R$ 8 mil.
“Jeitinho”: dividir compra em lotes inferiores a R$ 8 mil cada.
É crime!
Como identificar? CGU: redes bayesianas.
Fracionamento de compras
Irregularidades em convênios
SICONV
Governo federal transfere $ p/ estados e municípios, via convênios (obras
públicas, etc).
Esse $ freqüentemente é usado de forma irregular: contratação de empresa
do próprio prefeito/governador, contratação de empresa inidônea, etc.
Tudo isso é crime!
Como identificar? TCU: árvores de decisão.
Irregularidades em convênios
Carta marcada na licitação
Preços muito acima ou muito abaixo do normal podem ser indícios de
irregularidades.
Caneta esferográfica a R$ 50/unidade: pode ser um acerto entre o pregoeiro
e o fornecedor, por exemplo.
Como saber se o preço pago por um dado item é “normal”?
Como identificar? CGU: Fixed Point Clusters (FPC)
Carta marcada na licitação
Carta marcada na licitação (2)
Se:
… a licitação é feita de forma pouco transparente
… aditivos aumentam o valor inicial do contrato
... funcionários do órgão já trabalham p/ o fornecedor
A probabilidade de corrupção é maior.
Como identificar? TCU: Naïve Bayes.
Carta marcada na licitação (2)
Fraudes c/ crédito tributário
Às vezes o contribuinte paga imposto a mais.
Nesses casos pode-se pedir compensação.
Mas nem sempre a compensação é devida.
Como identificar? Receita Federal: regressão logística, Naïve Bayes, árvores
de decisão.
Fraudes c/ crédito tributário
O custo Brasília
O custo Brasília
Recrutamento engessado.
Decreto 8.135/2013: proíbe contratar AWS, GCE, etc.
Bases sujas, c/ muitas lacunas e sem documentação.
Retrabalho: diferentes órgãos limpando as mesmas bases de dados
(necessidade de uma data agency?).
Brasília.
Rumo aos finalmentes.
Lição mais importante
State of the Union
Há espaço p/ inovação no governo federal. Nem tudo são carimbos e
papelório.
Áreas do governo federal que fazem mineração de dados: CGU, TCU,
Receita Federal, CADE, Polícia Federal, (outros?).
http://www.brasildigital.gov.br/
É preciso expandir p/ áreas não-punitivas: saúde, educação, meio-
ambiente...
Você pode contribuir: dados.gov.br
Ferramentas
Grafos? Vale experimentar o Neo4j.
Sem amostras suficientes numa classse? Teoria dos Jogos, econometria...
Python vs R? Ora, pq não Python & R?
Sobre
Cientista de dados.
Professor de estatística e mineração de dados
(thiagomarzagao.com/teaching).
Pesquisador (thiagomarzagao.com/papers).
Entusiasta de LEGO Mindstorms (github.com/thiagomarzagao/ev3py).
Ex-Ohio State University.
[email protected], @tmarzagao