Big data no Planalto - QConSP...00000002 5 lápis MPOG 05/04/09 XYZ R$ 4,50 00000002 5 lápis MPOG...

Post on 31-May-2020

10 views 0 download

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.

marzagao.1@osu.edu, @tmarzagao