Photo by Franki Chamaki on Unsplash

Detecção de anomalia em um ERP

Rodrigo de Bona Sartor
Kugel Soft
Published in
3 min readDec 6, 2018

--

A Kugel fornece um ERP completo para Cooperativas Agroindustriais e dentro desse ERP temos um sistema para o controle do plantio, que vai desde o planejamento do plantio até a venda das sementes e fertilizantes para os cooperados.

O planejamento de plantio é muito importante, porque é a partir dele que a cooperativa negocia as compras com os fornecedores. Quanto mais assertivo for o planejamento, melhor será o resultado financeiro da cooperativa, pois terá menos desperdício de insumos.

Existe um período para que os agrônomos façam o planejamento de plantio, após esse período o planejamento é bloqueado para aprovação da gerência. Em nosso maior cliente, cada safra tem mais que 10 mil planejamentos para serem aprovados e isso estava tornando a aprovação menos detalhada e mais suscetível a erros.

Como tinha acabado de terminar um curso de machine learning percebi que a maioria dos erros nos planejamentos poderiam ser detectados como anomalias utilizando Distribuição normal.

Para fazer o cálculo de probabilidade e detectar se algum planejamento está anormal, são necessárias duas variáveis, a média e a variância. A média define o local da distribuição no eixo x e a variância define o quanto o valor varia.

Densidade de probabilidade de acordo com os parâmetros média e variância.

Para calcular a probabilidade, todos os dados devem ser numéricos. No caso dos planejamentos existem três dados que são importantes:

  • Data do plantio
  • Espaçamento
  • Quantidade de plantas por metro quadrado

Como o espaçamento e a quantidade de planta por metro quadrado já são números decimais não é necessário fazer nenhuma conversão. No caso da data do plantio é convertida para a quantidade de dias desde o início da safra.

Para calcular a média e a variância utilizamos as seguintes fórmulas:

Fórmula da média.
Fórmula da variância.

Sendo “m” a quantidade total de planejamentos de plantio e “x” a variável que estamos verificando. No caso dos planejamentos temos três variáveis que queremos controlar que define quando e quanto será utilizado. Então é realizado o cálculo da média e da variância para cada variável, ou seja, temos três médias e três variâncias.

Com a média e a variância é possível calcular a densidade de probabilidade. Quanto menor o valor da densidade, maior a probabilidade do valor ser uma anomalia.

Fórmula da densidade de probabilidade

Com os planejamentos que eu tinha para teste, achei melhor criar três faixas de valores para apresentar em tela:

  • f(x) > 0.2, planejamento normal
  • f(x) ≤ 0.2 e > 0.0001, planejamento com possível erro (em amarelo)
  • f(x) ≤ 0.0001, planejamento com erro (em laranja)
Print da tela que os gerentes tem acesso

Ainda ficaram alguns casos em que o sistema acusava tudo como anomalia ou nenhuma anomalia quando deveria ter acusado algumas. Identifiquei que isso estava ocorrendo em casos que existiam poucos planejamentos e tinha pelo menos um que estava muito fora da faixa que deveria ser considerada padrão.

Isso ocorre porque a média fica deslocada e a variância muito alta. Então resolvi esse problema excluindo 5% dos menores e maiores valores para calcular a média e a variância.

Exemplo densidade de probabilidade considerando todos e excluindo 5%

Utilizando conceitos básicos de detecção de anomalia, conseguimos diminuir consideravelmente o risco de erros graves e ainda a diminuição considerável de tempo para análise e aprovação dos planejamentos.

--

--