DEV Community

Rodrigo de Bona Sartor
Rodrigo de Bona Sartor

Posted on

Detecção de anomalia em um ERP

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

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 média

Fórmula da variância
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
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
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%
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.

Top comments (0)