sexta-feira, 28 de outubro de 2016

Data Mining - Lei de Newcomb-Benford

Lei de Newcomb-Benford


Outubro/2016


Autor: Willian Hofner

Parceria nas análises: Patrícia de Fátima e Almeida


Resumo
Os fatos atuais ocorridos no cenário político do Brasil demonstram um crescimento assutador da corrupção. O Poder Público tem atuado de forma preventiva e coercitiva a fim de investigar e descobrir os esquemas ilegais. A Policia Federal, o TCU, TCE, MP e vários outros órgãos estão aplicando inteligência às estratégias de investigação e reunindo provas de forma meticulosa, inclusive contra servidores da própria instituição.  Este artigo propõe uma metodologia para análise das contas do Poder Público, e tem por fundamento a regularidade estatistica dos dígitos de 1 a 9, conhecida por Lei Newcomb-Benford. Essa Lei estuda as frequências dos primeiros dígitos que aparecem em listas numéricas.

Palavras-chave: Artigo. Lei. Newcomb. Benford. Corrupção. Poder Público. Fraude.



Introdução
            Os números estão sempre presentes nas nossas vidas. Mas estariam eles distribuídos na mesma proporção?
Em 1881, o astrônomo e matemático, Simon Newcomb observou que as primeiras tábuas de logaritmos estavam mais desgastadas e que o desgaste ia diminuindo na medida em que os números aumentavam. Esta observação colocou em dúvida o entendimento de que a distribuição de dígitos numéricos era uniforme, isto é, que os dígitos de 1 a 9 teriam a mesma probabilidade de ocorrência.
Newcomb calculou a probabilidade de ocorrência dos números de 1 a 9 no primeiro dígito dos números analisados com a equação abaixo:

P (primeiro dígito significativo = d) = Log10
(1 + 1/d)

Em que:
d = primeiro digito significativo pertencente ao conjunto dos números inteiros entre 1 e 9.
P(d) = probabilidade de ocorrência do dígito d em um número qualquer.

Portanto, para n = 1, tem-se:
P (primeiro dígito significativo = 1) = Log10
(1 + 1/1) = 0,301...

Para n = 2, tem-se:
P (primeiro dígito significativo = 2) = Log10
(1 + 1/2) = 0,176...

Para n = 9, tem-se:
P (primeiro dígito significativo = 9) = Log10
(1 + 1/9) = 0,046...

O resultado destas operações resultou na seguinte distribuição:

Probabilidade de ocorrência do Primeiro Dígito Significativo
Dígito (d)
1
2
3
4
5
6
7
8
9
Total
P(d)
30,1%
17,6%
12,5%
9,7%
7,9%
6,7%
5,8%
5,1%
4,6%
100%

Mas Newcomb não forneceu evidências comprovando esta descoberta. 
Mais de meio século depois, em 1938, Frank Benford utilizou diversas fontes e analisou os primeiros dígitos dos números coletados e mostrou que a distribuição dos números de 1 a 9 nestes dígitos é proporcional ao intervalo de uma escala logarítmica.
O gráfico abaixo, com a distribuição da Lei de Benford, deixa clara a diminuição exponencial da probabilidade de ocorrência dos números de 1 a 9:




Portanto, segundo a Lei de Benford, se selecionarmos uma quantidade razoável de números (quanto maior a lista, mais o resultado se aproxima da distribuição definida pela lei) e analisarmos o primeiro dígito, verificaremos que o número 1 aparecerá mais que o 2, o 2 mais que o 3 e assim sucessivamente até o número 9. Além disso, a medição pode ser em qualquer escala que não altera os pressupostos da lei.
Caso o resultado fique muito distante da distribuição definida pela lei, podemos deduzir que existem indícios de que os números podem ter sido manipulados e que precisam ser auditados.
Para mensurar se a diferença resultante da comparação representa ou não uma desconformidade com a Lei, utiliza-se testes estatísticos tais como: Teste-Z, Qui-Quadrado e Média dos Desvios Absolutos.
Os conjuntos de dados para serem analisados pela lei de Benford devem ter as seguintes características:

            - Devem ser compostos por pelo menos de 1000 registros;
            - Os números devem ter no mínimo 4 dígitos;
            - Os números devem ser gerados de forma natural;
- Os números não podem ser restritos (Exemplos: números de telefone e altura das pessoas);

A Lei de Benford pode ser usada, por exemplo, para testar software, analisar o resultado das eleições, auditar as declarações de imposto de renda e orçamentos de obras públicas.
Ela pode ser identificada também pelo nome de “Lei contra a fraude” e “Lei dos Primeiros Dígitos” e atualmente ela é muito utilizada como uma ferramenta de data mining.
Abaixo alguns exemplos de utilização da lei:

            - Rastreamento de fraudes tributárias nos EUA é legalmente admissível pela aplicação da Lei de Benford;
- Análise dos dados macroeconômicos reportados pelos países membros da União Européia ao seu Gabinete de Estatística que resultou no ranking de desvios de 27 países e teve a Grécia vitoriosa neste quesito (manipulação confirmada oficialmente pela Comissão Européia).
Segue abaixo mais algumas conclusões da Lei:  

- Dados fraudulentos e aleatórios possuem poucos valores 1 e muitos 6;
- Valores de despesas nas declarações de IR que aparecem com dígitos 3 acima dos 12% é indício de manipulação;

Para aplicarmos a Lei Newcomb-Benford, foi utilizada a planilha retirada do portal da transparência da Prefeitura Municipal de Corinto – MG, no endereço eletrônico:
            A consulta teve como base as Despesas da Prefeitura Municipal de Corinto de janeiro a setembro de 2016.
Para a carga da planilha no Rstudio (software utilizado na analise da Lei Newcomb-Benford que possui uma biblioteca intitulada "benford.analysis") foi necessária algumas adaptações no arquivo, sem alterações dos dados:

- Transformação dos dados da coluna analisada para numérico com 2 casas decimais;
- Exclusão dos cabeçalhos entre as linhas;
- Arquivo .XLS salvo como arquivo .CSV.

Instalando, executando e analisando o pacote:

## Version 0.99.903 – © 2009-2016 RStudio, Inc.
## Instala o pacote no RStudio
> install.packages('benford.analysis')
## Carrega a biblioteca
> library(benford.analysis)
## Seleciona e carrega o arquivo “Despesas Corinto primeiro semestre 2016.csv”
> Despesas_Corinto_2016 <- read.csv(file.choose(), sep = ';', header = TRUE,
 as.is = TRUE, skipNul = TRUE, dec = ",", na.strings = "NA")



## Aplica a lei nas variáveis selecionadas para análise
> Benf_Corinto_2016 <- benford(Despesas_Corinto_2016$Valor.Pago,                                               number.of.digits = 1,discrete = FALSE)
## Lista os principais resultados da análise
> Benf_Corinto_2016

Benford object:

Data: Despesas_Corinto_2016$Valor.Pago => nome da base de dados
Number of observations used = 7365     => número de observações
Number of obs. for second order = 3957 => número de observações para segunda ordem
First digits analysed = 1             => primeiro dígito analisado

=>Na sequência as principais estatísticas da mantissa do log dos dados pesquisados. Se a lista de dados analisada segue a Lei de Benford, os valores devem ser próximos dos seguintes:
 - média: 0.5;
 - var: 1/12 (0.083333...);
 - curtose: 1.2;
 - assimetria: 0. 

Mantissa:

   Statistic  Value
        Mean  0.509
         Var  0.082
 Ex.Kurtosis -1.158
    Skewness -0.074


=> Segue os 5 maiores desvios que são os valores que podem merecer uma análise minuciosa, pois o mais importante não é saber se os dados seguem ou não a lei, mas sim verificar o tamanho do desvio e a sua importância prática.

O conjunto de dados suspeitos pode ser analisado com a função getSuspects. 

The 5 largest deviations:

  digits absolute.diff
1      3        538.83
2      2        219.91
3      4        173.74
4      7        168.89
5      1        138.09

=> Finalizando, segue um conjunto estatístico de grau de ajuste. Uma das verificações interessante é o p-valor do qui-quadrado que quanto mais perto de zero mais indicará um desvio em relação ao esperado.

Stats:

Pearson's Chi-squared test

data:  Despesas_Corinto_2016$Valor.Pago
X-squared = 518.27, df = 8, p-value < 2.2e-16

        Mantissa Arc Test

data:  Despesas_Corinto_2016$Valor.Pago
L2 = 0.0016959, df = 2, p-value = 3.762e-06

Mean Absolute Deviation: 0.02274956
Distortion Factor: 1.222325

Remember: Real data will never conform perfectly to Benford's Law. You should not focus on p-values!

## Gera os gráficos
> plot(Benf_Corinto_2016)



Digits Distribution

Comparação entre os dados pesquisados (barras em azul) e os valores esperados pela Lei de Benford (Linha vermelha tracejada).

Digits Distribution Second Order Test
           
Análogo ao Digits Distribution, porém faz a contagem para a diferença dos dados ordenados.

Summation Distribution by Digits

Este gráfico mostra a soma dos valores das observações agrupados por primeiros dígitos com o objetivo de identificar grupos de valores influentes.

A função getSuspects gera uma tabela com os dados dos dígitos com maior discrepância. Veja abaixo o exemplo:

> suspects <- getSuspects(Benf_Corinto_2016, Despesas_Corinto_2016)
 



Considerações Finais

A análise Benford facilita o trabalho de auditoria na medida que permite a verificação de toda a população de dados, retornando apenas a relação de dados suspeitos, permitindo assim um estudo mais direcionado a esses dados.
Os desvios aqui identificados em relação à Lei de Newcomb-Benford não constituem prova conclusiva de manipulação, entretanto uma não conformidade com a lei indica que os dados precisam de uma investigação mais minuciosa.
Outras funcionalidades podem ser consultadas no pacote de acordo com a análise necessária.

Bibliografia









Nenhum comentário:

Postar um comentário