Usando Machine Learning para prever a área plantada de soja nos EUA
1. 1
Usando Machine Learning
para prever a área plantada de soja nos EUA
Demoday
Data Science & Machine Learning
Paulo Brigatti Rodrigo Tofoli Nicholas Gimenes
2. 2
ARTIGO COMPLETO NO MEDIUM
Usando Machine Learning para Previsão da área plantada de soja
nos Estados Unidos
https://medium.com/@nicholasgimenes/usando-machine-learning-para-previs%C3%A3o-da-
%C3%A1rea-plantada-de-soja-nos-estados-unidos-9de8edc7aeb3
6. 6
a perspectiva de área
plantada de soja.
Área
plantada
Porque projetar área plantada dos
Estados Unidos?
1) A produção brasileira e americana
caminham lado a lado.
2) Pela riqueza de informações de
domínio público em portais do governo
norte americano (USDA - Departamento
de Agricultura do Governo Americano).
?
Qual a utilidade desta projeção?
A própria USDA divulga sua projeção para
os próximos 10 anos.
Mas áreas de inteligência de mercado de
empresas que atuam no ramo, seus clientes
(produtores, consumidores, investidores,
comerciantes, vendedores de insumos e
implementos) e até outros governos
precisam de suas próprias projeções
independentes e complementares, pois as
premissas e modelos utilizados pela USDA
não são divulgados.
9. 9
Dados macroeconômicos
DADOS FONTE
●
●
●
●
●
●
Fonte: USDA Departamento de Agricultura dos EUA
Armadilha de dataleak:
● Indicador calculado retroativamente
utilizando o ano de 2010 como base.
● Os anos anteriores são a variação %
com relação ao ano de 2010.
10. 10
SÉRIES TEMPORAIS: E AGORA?
Time Serious
?
Etapas extras no EDA e na preparação do
dados:
● Estacionariedade
● Diferenciação
● Separação Train x Test
Modelos estatísticos e algoritmos diferentes
dos vistos em aula (multivariados):
● VAR
● Prophet
● LSTM
11. 11
APENAS DUAS FEATURES COM DADOS NULOS ENTRE 1994 E 2018
Calculado a partir de outras features.
Como temos mudança de patamar no
tempo seria ruim completar com média
geral. Utilizada média dos últimos 4
anos.
12. 12
VISUALMENTE POUCAS SÉRIES PARECERAM ESTACIONÁRIAS (NORMALIZADAS)
Nas séries estacionárias os pontos variam em torno da
mesma média e variância.
Alguns métodos precisam que as séries sejam
estacionárias (como o VAR).
14. 14
TESTE DE AUTOCORRELAÇÃO: 2 A 3 ANOS DE LAG PARECERAM SUFICIENTES
Aplicado teste ACF disponível na statsmodels:
● Permite analisar o lag: quantos anos passados
influenciam o ano seguinte.
● Entre dois e três anos de lag se mostraram
suficientes.
● Exemplo: o ano de 2018 é influenciado pelos anos 2016 e 2017.
Os anos 2015 pra trás tem uma correlação aleatória com 2018,
ou seja, nao ajudam a predizer o ano 2018.
ACFACF
Lags (valores passados da feature)
Auto Correlation
Function:
Mede a correlação
(de -1 a +1) entre
pontos da série
temporal e seus
valores passados.
Precisamos examinar os pontos em cada lag
para determinar se há correlação significante.
Se for significativa, estará fora dos limites de
significância (em azul). Caso contrário, a
correlação é aleatória.
Obs: No lag = 0 é sempre = 1.
16. 16
PREPARAÇÃO
Treino x Teste
Com time series não podemos fazer seleção
aleatória de treino e teste para nao termos
data leakage. É necessário separar por
períodos:
● Treino: Dados de 1994 a 2013
● Teste: Dados de 2014 a 2018
Normalização
A normalização foi aplicada após a separação
de treino e teste para evitar data leakage.
Teste de estacionariedade e
diferenciação
Para aplicação do VAR um teste estatístico
indica se a série é estacionária (ADFuller,
disponível na statsmodels). Algumas features
foram diferenciadas até 3 vezes para se
tornarem estacionárias.
Redução de dimensionalidade
As features foram ordenadas pela
correlação com a variável resposta para
inclusão nos modelos (testando o resultado
com conjuntos de features pequenos, médios
e grandes).
17. 17
MODELAGEM: PROPHET COM MELHOR RESULTADO QUE O BASELINE (VAR)
VAR (Vector Autoregression) Prophet
● Modelo que considera a relação das variáveis entre si e entre
seus valores passados.
● Não performa para conjuntos grandes de features. Foram
testados diferentes conjuntos de features e lags (número de
períodos passados).
● Utilizadas 15 features com lag order = 2.
MAE: 18.749
● Exige pouca preparação dos dados: as séries sequer precisam
ser estacionárias ou normalizadas.
● Todavia, requer a projeção de cada feature de modo univariado
usando o próprio Prophet e retroalimenta-lo para fazer a
projeção multivariada.
● Utilizadas 14 features.
● Multivariado teve MAE um pouco maior, mas refletiu melhor a
tendência da série
MAE Univariado: 9.481
MAE Multivariado: 11.128
MAE = Mean Absolute Error
18. 18
PRODUÇÃO: SELEÇÃO DE ANOS A SEREM PROJETADOS COM PROPHET MULTIVARIADO
https://soy-planted-area.herokuapp.com/
20. 20
CONCLUSÃO
Projeção: Prophet versus USDA● VAR se mostrou bastante trabalhoso na preparação dos dados e
transformação das séries.
● Outro problema no VAR é a quantidade de features versus o lag
order: a complexidade do algoritmo explode conforme estes
aumentam, sendo necessários testes e calibragem.
● Prophet foi muito mais simples de utilizar, apesar de requerer certo
trabalho extra para modelagem multivariada. Ainda assim mostrou
melhores resultados que o VAR.
● LSTM apresentou complexidade na preparação do input para o
algoritmo e no trabalho com os hiperparâmetros. Dado o prazo do
projeto, optamos por focar na otimização do VAR e Prophet, mas
avançar no LSTM seria um próximo passo para desafiar os
resultados do Prophet.
Atingidos os objetivos de:
1) Chegar em uma projeção independente
para confrontar com a divulgada pela USDA;
2) Obter maior conhecimento sobre as
features utilizadas e quanto influenciam na
curva esperada para os próximos anos.