Recebemos o desafio de calcular previsões dos saques diários para a maior rede de ATM do Brasil e uma das maiores do mundo.
Tarefa nada trivial, a começar pela escala do projeto, gerar previsões massivamente para vários milhares de ATM sem, contudo, comprometer a acurácia dos modelos estatísticos e que ainda possuísse performance computacional.
O sistema preditivo deveria atender a algumas prerrogativas: Primeiro, deveria ter alto poder de predição, mas sem abrir mão da capacidade explicativa. Optamos por aplicar a transparência dos modelos Estatísticos combinado com a predição dos modelos de Machine Learning. Segundo, o sistema deveria ser assertivo, porém, nesse caso desvios positivos e negativos tem custos diferentes, já que previsões abaixo do realizado implicam em prejuízo e previsões acima do realizado mas em excesso acarretam aumento dos custos operacionais e custo de oportunidade do dinheiro que não circula. Por fim, o sistema deveria ser flexível para testar novos métodos sobre uma base robusta.
A base da modelagem aplicada foi um SARIMAX do tipo log-log com uma diferenciação sazonal, o que que amortece a média e a variância reduzindo os impactos da tendência e tornando os efeitos multiplicativos facilitando a interpretação. Esta técnica é bem descrita pela literatura científica, sendo capaz de filtrar os componentes de Sazonalidade e Tendência além de receber variáveis explicativas exógenas que expressam o comportamento da demanda por saque seja na forma de regra de negócio específica seja na forma de calendário social como os feriados, feriados prolongados, calendário de pagamentos de salários, aposentadorias, auxílios financeiros, etc.
Outro aspecto importante do desafio é que as séries possuem um caráter hierárquico. Ou seja, a série de um nível é o somatório das séries abaixo. Ao final do processo as previsões precisam ser agrupadas para que a previsão do nível acima seja a soma do nível abaixo.
Já a segunda parte do desafio foi o de aplicar uma tomada decisão sobre a previsão. Como é sabido, uma previsão bem ajustada deve oscilar entorno do realizado, ou seja, o resíduo dever ter média zero. Mas o custo do erro -neste caso- não é simétrico. A previsão abaixo do realizado causa perda de transações pela descobertura da rede, e previsões em excesso conduzem a um desperdício operacional. É considerado que o custo de unidade a mais é menor que uma unidade a menos. Deste modo, a previsão acrescida (ou subtraída, em muitos casos) da tomada de decisão deve, idealmente, ficar em um range de valores não muito acima do realizado. Aplicamos um método de otimização via gradiente que maximizasse a quantidade de previsões dentro da faixa de erro considerada ótima operacionalmente.
Por fim, este foi/é um desafio que nos exigiu bastante técnica em todas as esferas que compõe um Cientista de Dados: computacional, estatística robusta e machine learning. Fomos levados ao limite… e gostamos disso!
Felipe Freitas, Líder do projeto.