ESTIMATIVA DE PERFIL DE CONSUMO UTILIZANDO MODELOS...
Transcript of ESTIMATIVA DE PERFIL DE CONSUMO UTILIZANDO MODELOS...
ESTIMATIVA DE PERFIL DE CONSUMO UTILIZANDO
MODELOS NAO LINEARES APLICADOS A SERIES
TEMPORAIS
Hellen Pereira Lima
Projeto de Graduacao apresentado ao Curso
de Engenharia Eletronica e de Computacao
da Escola Politecnica, Universidade Federal
do Rio de Janeiro, como parte dos requisitos
necessarios a obtencao do tıtulo de Enge-
nheiro.
Orientadores: Luiz Pereira Caloba e
Natanael Nunes de Moura Junior
Rio de Janeiro
Maio de 2018
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politecnica - Departamento de Eletronica e de Computacao
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria
Rio de Janeiro - RJ CEP 21949-900
Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que
podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar
qualquer forma de arquivamento.
E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-
otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja
ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que
sem finalidade comercial e que seja feita a referencia bibliografica completa.
Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es).
iv
AGRADECIMENTO
Agradeco primeiramente a Deus que, com sua imerecida graca, conduz minha vida
e permitiu que essa realizacao fosse possıvel.
A minha famılia, por todo amor e suporte oferecidos. Obrigada ao meu pai
Gilberto, por ser o engenheiro no qual me inspirei desde crianca. Obrigada a minha
mae Denise, por abrir mao das proprias escolhas para cuidar de mim com tanta
dedicacao. Obrigada a minha irma Evelyn, por tornar meus dias mais leves e por
compreender as noites que precisei manter a luz do quarto acesa para estudar de
madrugada. Obrigada ao meu namorado Henrique, por me apoiar em todos os
momentos com tanto amor.
Ao professor Caloba, que com toda sua sabedoria contribuiu de maneira essencial
para a realizacao deste trabalho e ao Junior que, alem de aceitar me orientar neste
trabalho, aconselhou minhas escolhas academicas, desde o inıcio da faculdade, com
muita paciencia.
Aos professores deste curso que facilitaram o entendimento de disciplinas e foram
solıcitos quando necessitei.
Aos colegas do Laboratorio de Processamento de Sinais, que me orientaram nos
anos de iniciacao cientıfica e compartilharam conhecimento com boa vontade.
Aos meus colegas da Engenharia Eletronica e de Computacao, que eu dividi boa
parte dos meus dias nestes ultimos anos. Muito obrigada por todas as tardes e
noites de estudo, pelo apoio quando eu ja nao tinha mais forcas pra estudar e,
principalmente, por tornar o cotidiano menos pesado com a companhia de voces.
Obrigada Antonio Resende, Gabriel Alboretti, Thiago Lobo, Humberto Paz, Tamine
Verli, Victor Barros, Alice Souto, Pedro Gil, Vitor Cossetti, Luiz Renno, Tharsus
Proux, Marina Torres e a todos os outros que cruzaram meu caminho e de alguma
forma contribuıram para esta conclusao.
v
RESUMO
Com os avancos tecnologicos, os meios de pagamentos e formas de compras fo-
ram sofrendo modificacoes ate chegar ao modelo atual de lojas virtuais. Com isso,
cartoes de credito assumiram um papel fundamental no comercio, tanto no atacado,
quanto no varejo. Estudos indicam que a maior parte dos consumidores utiliza o
cartao de credito como forma de pagamento, em compras online, e que ha uma
crescente adesao do mercado brasileiro as compras virtuais, resultando em um com-
portamento crescente no volume de dados. Este fato torna o monitoramento de
transacoes por este meio de pagamento desafiador. Uma medida importante para
um lojista e a quantidade de vendas que foram realizadas, num determinado inter-
valo de tempo. Esta informacao tambem tem importancia para bancos, adquirentes
e outras empresas do meio de pagamentos. A partir desta medida, e possıvel detectar
anomalias comportamentais que podem indicar uma fraude, um problema tecnico
ou a condicao de churn, que e quando um cliente deixa de consumir os servicos de
determinada empresa. Neste projeto de graduacao propoe-se a utilizacao de decom-
posicao de series temporais, em conjunto com um modelo nao linear, para a predicao
da quantidade de vendas realizadas, em um determinado perıodo de tempo, por um
lojista, utilizando dados reais. Para realizar o desenvolvimento dos modelos, foram
utilizadas Redes Neurais Artificiais para prever a componente nao linear residual da
serie temporal em questao. Para o conjunto de validacao, foi obtido um RMSE de
584,182 e uma acuracia de comportamento de 76,75%. Esta ultima figura de merito
foi criada para este projeto e indica a capacidade do modelo de prever o compor-
tamento da serie esperada. O resultado desta abordagem foi confrontado com uma
tecnica de referencia que utiliza apenas a decomposicao de series temporais.
Palavras-Chave: Series Temporais, Perfil Transacional, NARMA, Redes Neurais
Artificiais, Decomposicao de Series Temporais, Ciencia de Dados, Aprendizado de
Maquina, Inteligencia Artificial.
vi
ABSTRACT
Due to technological advances, the payment methods and ways of trading un-
derwent modifications until arriving at the current concept of e-commerce. Besides
that, credit cards have played a key role in both wholesale and retail trade. Studies
indicate that most consumers use credit cards as the main payment method, for
online purchases, and that there is an increasing adhesion of the Brazilian market
to virtual purchases. These two facts result in an increasing volume of data, which
makes monitoring the transactions by this payment method a challenging problem.
An important measure for a retailer is the amount of sales, within a certain time
period. This information is also important to banks, acquirers and other compa-
nies in the payments system. From this measure, it is possible to detect behavioral
anomalies that may indicate a fraud, a technical problem or the condition of churn
(when a customer stops consuming the services of a certain company). This un-
dergraduate project proposes a combined approach, using time series decomposition
and a nonlinear model, to predict the amount of sales in a store, given a time period,
using a real dataset. To develop the models, Artificial Neural Networks were used
to predict the residual nonlinear component of the time series in question. For the
validation set, the RMSE was 584,182 and the accuracy of behavior was 76.75 %.
The accuracy of behavior is a figure of merit that was specially created for this pro-
ject and indicates the capacity of the model to predict the behavior of the expected
series. The result of this approach was confronted with a reference technique that
uses only time series decomposition.
Key-words: Time Series, Transactional Profile, NARMA model, Artificial Neural
Networks, Time Series Decomposition, Data Science, Machine Learning, Artificial
Intelligence
vii
SIGLAS
RNA - Rede Neural Artificial
MLP - Multilayer Perceptron ou Perceptron Multicamadas
CNC - Computer Numerical Control ou Controle Numerico Computadorizado
PACF - Partial Autocorrelation Function ou Funcao de Autocorrelacao Parcial
AR - Autoregressive ou Autorregressivo
ARMA - Autoregressive Moving Average ou Media Movel Autorregressiva
NARMA - Non-linear Autoregressive Moving Average ou Media Movel Autorre-
gressiva Nao-linear
Div. KL - Divergencia Kullback–Leibler
LSTM - Long Short-Term Memory
RNN - Recurrent Neural Network ou Rede Neural Recorrente
KDE - Kernel Density Estimation ou Estimativa de Densidade por Kernel
PDF - Probability Density Function ou Funcao de Densidade de Probabilidade
RBM - Restricted Boltzmann Machine
viii
Sumario
1 Introducao 1
1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Organizacao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Analise de Perfil de Consumo 6
3 Fundamentacao Teorica 9
3.1 Series Temporais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Decomposicao de Series Temporais . . . . . . . . . . . . . . . 10
3.1.2 Tendencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.3 Sazonalidade e Ciclos Senoidais . . . . . . . . . . . . . . . . . 14
3.2 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Funcao de Ativacao . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2 Normalizacao dos Dados . . . . . . . . . . . . . . . . . . . . . 20
3.2.3 Funcoes Custo . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Modelo NARMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Metodo 26
4.1 Leitura dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Decomposicao da Serie Temporal . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Tendencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.2 Sazonalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Treinamento do Modelo NARMA . . . . . . . . . . . . . . . . . . . . 30
ix
4.4.1 Treinamento da Rede Neural Artificial . . . . . . . . . . . . . 31
4.4.2 Validacao Cruzada . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5 Figuras de Merito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 Resultados Experimentais 34
5.1 Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Decomposicao de Series Temporais . . . . . . . . . . . . . . . . . . . 40
5.2.1 Tendencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.2 Sazonalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2.3 Decomposicao Completa e Serie Residual . . . . . . . . . . . . 42
5.2.4 Potencia das Componentes da Serie Temporal . . . . . . . . . 47
5.2.5 Reconstrucao da Serie Temporal, com Tendencia e Sazonalidade 48
5.3 Pre-processamento dos Dados . . . . . . . . . . . . . . . . . . . . . . 49
5.3.1 Normalizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.2 Determinacao da Ordem do Modelo . . . . . . . . . . . . . . . 53
5.4 Parametros da RNA . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.5 Resultados do Modelo NARMA . . . . . . . . . . . . . . . . . . . . . 54
5.5.1 Serie Residual . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.5.2 Serie Reconstruıda . . . . . . . . . . . . . . . . . . . . . . . . 56
5.5.3 Serie Reconstruıda Nao Negativa . . . . . . . . . . . . . . . . 57
5.5.4 Serie Reconstruıda com Decomposicao . . . . . . . . . . . . . 57
5.5.5 Histograma do Erro . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5.6 Scatter Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.6 Conjunto de Validacao (Out-of-Sample) . . . . . . . . . . . . . . . . . 63
5.7 Divergencia KL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.8 Comparacao dos Resultados . . . . . . . . . . . . . . . . . . . . . . . 67
6 Conclusoes 68
Bibliografia 70
x
Lista de Figuras
3.1 Potencia da serie temporal, extraıda da Time Series Data Library, e
suas componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Estimativas de tendencias lineares da serie temporal, extraıda da
Time Series Data Library, utilizando diferentes janelas de observacao 14
3.3 Estimativas de sazonalidades anuais, da serie temporal, extraıda da
Time Series Data Library, utilizando diferentes janelas de observacao. 16
3.4 Modelo nao linear de um neuronio artificial . . . . . . . . . . . . . . . 17
3.5 Exemplo de estrutura de uma MLP . . . . . . . . . . . . . . . . . . . 19
3.6 Modelo ARMA ou NARMA . . . . . . . . . . . . . . . . . . . . . . . 23
3.7 Exemplo de autocorrelacao parcial da serie temporal descrita na Secao
3.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1 Modelo NARMA para Series Temporais . . . . . . . . . . . . . . . . . 26
4.2 Diagrama em blocos do fluxo de trabalho . . . . . . . . . . . . . . . . 27
4.3 Tangente hiperbolica . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 Estrutura da rede MLP utilizada . . . . . . . . . . . . . . . . . . . . 32
5.1 Grafico temporal do banco de dados completo . . . . . . . . . . . . . 35
5.2 Histograma do banco de dados . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Histogramas do banco de dados, dividido por perıodo do dia . . . . . 38
5.4 Periodograma da serie temporal completa . . . . . . . . . . . . . . . . 39
5.5 Tendencia linear para toda a janela de aquisicao . . . . . . . . . . . . 41
5.6 Tendencia linear e serie original para julho de 2017 . . . . . . . . . . 41
5.7 Serie sem tendencia, em julho de 2017 . . . . . . . . . . . . . . . . . 41
5.8 Periodograma da serie sem tendencia . . . . . . . . . . . . . . . . . . 42
5.9 Sazonalidade diaria, em julho de 2017 . . . . . . . . . . . . . . . . . . 43
xi
5.10 Tendencia global, sazonalidade global e serie original . . . . . . . . . 43
5.11 Serie original e estimativas de tendencia e sazonalidade locais . . . . . 44
5.12 Serie residual, sem tendencia e sazonalidade . . . . . . . . . . . . . . 45
5.13 Peridograma da serie residual, sem tendencia e sazonalidade . . . . . 46
5.14 Potencia da serie original, componentes e serie residual . . . . . . . . 47
5.15 Histogramas da serie original, serie sem tendencia e serie residual . . 48
5.16 Histogramas da serie original e da serie reconstruıda com tendencia e
sazonalidade horaria . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.17 Histograma da serie residual normalizada pela tecnica MinMax . . . . 50
5.18 Histograma da serie residual normalizada pela tangente hiperbolica . 51
5.19 Histograma da serie residual . . . . . . . . . . . . . . . . . . . . . . . 52
5.20 Serie residual normalizada, em julho de 2017 . . . . . . . . . . . . . 53
5.21 Autocorrelacao parcial da serie residual normalizada . . . . . . . . . . 54
5.22 RMSE para uma variacao de 1 a 10 neuronios na camada escondida . 55
5.23 Saıda da rede neural, para o conjunto de treino, comparada ao alvo . 56
5.24 Saıda da rede neural, para o conjunto de teste, comparada ao alvo . . 56
5.25 Saıda da rede neural reconstruıda, para o conjunto de teste, compa-
rada ao alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.26 Saıda da rede neural reconstruıda nao negativa, para o conjunto de
teste, comparada ao alvo . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.27 Serie temporal reconstruıda com tendencia e sazonalidade diaria, para
o conjunto de teste, comparada ao alvo . . . . . . . . . . . . . . . . . 58
5.28 A esquerda, histograma do erro; a direita, histogramas da serie espe-
rada (em azul) e da serie predita (em vermelho) . . . . . . . . . . . . 59
5.29 Histogramas da serie original (em azul), da serie predita pelo mo-
delo NARMA (em vermelho) e da serie reconstruıda apenas com a
decomposicao (em marrom) . . . . . . . . . . . . . . . . . . . . . . . 60
5.30 Scatter plot do valor absoluto do erro versus valor absoluto do alvo . 61
5.31 Scatter plot do alvo residual versus saıda residual da RNA . . . . . . 62
5.32 Scatter plot do alvo completo versus saıda reconstruıda da RNA . . . 62
xii
5.33 Scatter plots do alvo completo versus saıda reconstruıda da RNA (ver-
melho) e alvo completo versus saıda reconstruıda pela decomposicao
(marrom) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.34 Saıda residual da RNA, para o conjunto de validacao, comparada ao
alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.35 Saıda da RNA reconstruıda, para o conjunto de validacao, comparada
ao alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.36 Divergencia KL do modelo NARMA para o conjunto de validacao . . 65
5.37 Divergencia KL da decomposicao para o conjunto de validacao . . . . 66
xiii
Lista de Tabelas
5.1 Tabela comparativa dos valores de divergencia KL . . . . . . . . . . . 66
5.2 Tabela comparativa dos valores de RMSE . . . . . . . . . . . . . . . 67
xiv
Capıtulo 1
Introducao
Neste capıtulo, sera explicada a visao geral do projeto final, o contexto no
qual ele se insere, sua relevancia e aplicacoes. Ao final do capıtulo, sera descrita a
organizacao do texto.
1.1 Tema
O comercio, isto e, a atividade de compra, troca ou venda, e uma necessidade
humana desde a pre-historia [1]. Embora a forma original do comercio tenha sido
atraves de permuta, os registros historicos indicam que as sociedades nao monetarias
operavam primariamente sob os princıpios da economia de oferta e debito (dıvida)
[2, 3]. Com o passar do tempo, os meios de pagamento foram evoluindo, desde o
conceito de moeda-mercadoria (Mesopotamia, 3000 a.C.) [4], passando pela forma
representativa (que inclui moedas metalicas e papel-moeda) [5], ate chegar no cartao
de credito. Este ultimo e um cartao de pagamento, emitido para um portador, que
possibilita a este pagar a um comerciante por bens e servicos. Esta possibilidade
gira em torno da promessa que o portador faz ao emissor do cartao de que pagara
a ele os valores ja pagos ao comerciante, acrescidos de taxas acordadas [6].
O conceito de utilizar cartoes de credito para realizar compras foi descrito pela
primeira vez em 1888, por Edward Bellamy, em seu romance “Looking Backward”
[7]. Porem apenas em 1950, este conceito foi concretizado pela empresa Diners Club.
Desde entao, este metodo de pagamento vem sendo cada vez mais utilizado em todos
1
os lugares do mundo [8]. No Brasil, segundo o Banco Central, no ano de 2016 foram
transacionados mais de R$ 1,1 trilhao, em credito e debito, um crescimento de 6,5%
em relacao a 2015 e de 17% em relacao a 2014 [9].
Em 1989, Tim Berners-Lee criou o primeiro servidor de World Wide Web e o
primeiro navegador [10]. Esta inovacao permitiu o avanco de outras tecnologias,
como a encriptacao dos dados transferidos online, que possibilitaram a realizacao
de transacoes comerciais seguras a distancia. Em 1994, o site NetMarket realizou a
primeira transacao segura, pela internet, utilizando um cartao de credito [11].
Segundo resultados de uma pesquisa realizada pelo Servico de Protecao ao Credito
e pela Confederacao Nacional de Dirigentes Lojistas, em 2017, estima-se que, no Bra-
sil, 89% dos internautas realizaram pelo menos uma compra online no ano anterior.
Alem disso, 43% dos consumidores aumentou a quantidade de produtos adquiridos
pela internet, comparado a 2016. Um outro fato relevante e que 65% dos consumi-
dores online utilizam cartao de credito como forma de pagamento [12].
Estas pesquisas indicam uma crescente adesao do mercado brasileiro as compras
online, o que significa um crescente volume de dados contendo informacoes de com-
pras e transacoes financeiras rastreaveis. Este novo cenario traz consequencias ao
mercado e apresenta alguns desafios relacionados a estes dados. Dentre os proble-
mas existentes, pode-se citar: grande volume de dados e a dificuldade de manter o
alto desempenho computacional; possibilidade de fraudes que podem afetar tanto
o lojista quanto o consumidor; banda de transmissao necessaria para transmitir
tamanha quantidade de dados, em tempo real; ciberseguranca para armazenar e
transmitir dados sensıveis.
Levando em consideracao os desafios envolvidos neste cenario, vale ressaltar que
estas informacoes de compras podem ser uteis para empresas de diversos segmentos,
entre eles: comercio, bancos, adquirentes1, agencias de marketing. E, alem disso,
1Uma adquirente e a empresa do meio de pagamentos que processa as transacoes em credito
e debito e viabiliza a comunicacao entre o lojista e o banco emissor do cartao, sendo responsavel
tambem pelo pagamento dos valores transacionados ao lojista [13, 14].
2
estes dados podem apresentar uma complexidade elevada por possuirem compor-
tamento variavel ao longo do tempo. Deste modo, torna-se muito custoso fazer
analises manuais e surge entao a necessidade de automatizar este processo.
1.2 Justificativa
Tendo em vista os desafios envolvidos neste universo de compras online, uma
analise possıvel seria a predicao da quantidade de transacoes financeiras, em credito
ou debito, que serao realizadas num determinado estabelecimento comercial, seja ele
uma loja fısica ou uma loja virtual (e-commerce), em um determinado perıodo de
tempo. Esta informacao do numero de transacoes e chamada de perfil transacional.
Detectar e prever anomalias no comportamento transacional de um lojista pode
ter diversas aplicacoes, entre elas: predicao de churn2, para uma possıvel empresa
que possua o lojista como cliente (como e o caso de bancos e adquirentes); deteccao
de fraudes ou deteccao de problemas tecnicos. Porem, dependendo do numero de
clientes a serem observados, pode ser desafiador monitorar todas essas informacoes
individualmente e manualmente. Com isso, torna-se necessaria a utilizacao de siste-
mas de apoio a decisao, isto e, sistemas que sejam capazes de automatizar a deteccao
destes comportamentos indesejados de maneira escalavel e inteligente.
O comportamento transacional de um lojista ou de um cliente pode ser afetado
por fatores temporais (clima, epoca do ano, crises economicas, etc) e, portanto,
apresenta uma dependencia com o tempo. Tal relacao com o tempo possibilita uma
abordagem de series temporais a este estudo. Alem disso, espera-se uma relacao nao
linear com o tempo, que aumenta a complexidade deste problema.
As abordagens “classicas” de series temporais comumente utilizam o metodo de
Box–Jenkins, descrito no livro [15], na qual os estatısticos George Box and Gwilym
Jenkins popularizam a aplicacao de modelos ARMA (do ingles, Autoregressive Mo-
ving Average) ou ARIMA (do ingles, Autoregressive Integrated Moving Average)
para predicao de uma serie temporal. Porem, a literatura afirma que tais modelos
2Quando um cliente deixa de consumir os produtos ou servicos de uma empresa.
3
sao lineares e, por isso, apresentam uma limitacao no tratamento de problemas nao
lineares [16, 17]. Deste modo, uma abordagem hıbrida que combine um modelo
linear com um modelo nao linear (como por exemplo, Redes Neurais Artificiais) tem
apresentado resultados mais acurados [18] e e uma alternativa para lidar com esta
restricao. A ideia e extrair a parte linear utilizando modelos lineares e treinar uma
Rede Neural Artificial (RNA) para aprender apenas a parte nao-linear restante.
Inspirado na abordagem hıbrida proposta pela literatura citada, este trabalho con-
siste na implementacao de um modelo computacional, capaz de realizar a predicao
do perfil transacional de um dado lojista, utilizando RNA e decomposicao classica
de series temporais.
Mais do que detectar os problemas citados anteriormente, busca-se atuar de ma-
neira preditiva, para antever possıveis anomalias e atuar de maneira a evitar que
as mesmas sejam concretizadas, evitando ate mesmo eventuais prejuızos financeiros.
Neste contexto, fica evidente a importancia de utilizar metodos preditivos, como os
que serao abordados aqui neste trabalho.
1.3 Objetivos
Dada a importancia dos dados que estao contidos em um perfil transacional, o ob-
jetivo deste trabalho e implementar um modelo capaz de prever o perfil transacional
de um lojista.
Para realizar tal previsao, sera utilizado um metodo hıbrido que combina a de-
composicao de series temporais (metodo linear) com uma RNA (metodo nao linear),
com o objetivo de aproveitar as vantagens de cada um destes modelos para prever
as componentes lineares e componentes nao lineares da serie temporal abordada.
A serie temporal estudada neste trabalho e composta por quatro meses do perfil
transacional de um dado lojista. Esta serie ira passar por uma normalizacao e um
pre-processamento estatıstico, a fim de extrair as componentes lineares e, posterior-
mente, uma RNA sera aplicada para a predicao das componentes nao lineares.
4
Definir a capacidade de um modelo pode ser uma tarefa subjetiva. Entao, para
isto, serao utilizados recursos graficos para a comparacao, mas tambem serao avali-
adas metricas de distancia entre o perfil real e perfil predito pelo modelo.
1.4 Organizacao do Texto
No capıtulo 2 serao apresentadas algumas publicacoes academicas que abordam o
mesmo problema explorado neste projeto, descrevendo algumas formas ja publica-
das de atacar este problema. Ja no capıtulo 3 sera realizada uma apresentacao da
teoria que fundamenta este projeto de graduacao, passando pelo conceito de series
temporais, decomposicao de series temporais, tendencia, sazonalidade, ate chegar
em Redes Neurais Artificiais e modelo NARMA. Todo o metodo seguido para a
realizacao do projeto sera descrito no capıtulo 4, que abordara assuntos como a lei-
tura dos dados, pre-processamento, treinamento do modelo NARMA e metricas. Os
resultados serao apresentados no capıtulo 5, com graficos temporais, histogramas e
scatter plots das predicoes, comparadas ao valor esperado. Alem disso, o resultado
obtido pelo modelo NARMA sera comparado com o resultado obtido pela decom-
posicao de series temporais. Por fim, o capıtulo 6 sera destinado as consideracoes
finais e sugestoes de trabalhos futuros.
5
Capıtulo 2
Analise de Perfil de Consumo
O perfil de consumo de um dado lojista pode ser entendido como o comportamento
esperado de vendas, num determinado perıodo de tempo. Este comportamento pode
ser relacionado tanto ao valor monetario (medio ou total) das vendas, como a quan-
tidade de vendas que foram realizadas, no perıodo de tempo. A analise deste perfil
de consumo, em geral, tem o objetivo de prever o comportamento futuro, tendo em
vista o comportamento historico e tambem outros dados externos complementares
relevantes para a analise.
Neste capıtulo, serao discutidas maneiras de se abordar a analise de perfil de
consumo, explorando formas de atacar o problema que ja foram utilizadas no meio
academico. Dentre as formas que serao apresentadas, estao: um metodo que utiliza o
comportamento de um consumidor em uma pagina web para prever o valor monetario
das vendas [19]; outro metodo que preve apenas se o comportamento de vendas
apresentara uma queda ou uma subida [20]; um metodo que estima o impacto nas
vendas de lojas vizinhas com a abertura de uma nova loja fısica proxima [21] e
algumas outras abordagens.
Sun et al. [19] propoem um metodo para predicao do valor de vendas online
que utiliza um algoritmo de deteccao que e um tipo de classificador com regressao
logıstica, baseado em caracterısticas semanticas de paginas web. O metodo consiste
em separar paginas web em tres categorias: paginas comuns, paginas de compras e
paginas de confirmacao de compras. Se uma pagina de compras e seguida por uma
pagina de confirmacao, entao a transacao e considerada bem sucedida e o valor dela
6
e obtido e enviado ao servidor. O algoritmo que preve o valor da transacao e baseado
em regressao logıstica e utiliza alguns campos de texto extraıdos das paginas web. O
desempenho do algoritmo e satisfatorio e acurado na estimativa de vendas de varejo
online.
Ja Wei et al. [22] propoem uma combinacao de dados de pesquisa na internet com
a estrutura de um modelo de series temporais para prever o volume de vendas de
uma loja online chinesa chamada Taobao. O processo consiste na exploracao da cor-
relacao entre o comportamento de pesquisa dos consumidores e o comportamento de
compras, seguido da extracao das componentes de tendencia e sazonalidade, para o
calculo da serie temporal residual. Entao, o modelo preditivo utiliza as informacoes
sobre o comportamento de busca do consumidor e a serie residual para realizar a
predicao do volume de vendas. Os autores exploram apenas o tradicional modelo
AR de duas formas: a primeira apenas utilizando o volume residual de vendas e
a segunda acrescentando tambem as informacoes do comportamento de busca dos
consumidores. Os resultados indicam que a introducao das informacoes compor-
tamentais dos usuarios contribuıram positivamente para a acuracia da predicao,
mesmo com com a utilizacao de um modelo simples.
Yaneko e Yada [20] trazem uma abordagem que utiliza Deep Learning para a
previsao do comportamento das vendas em uma loja. Os dados utilizados sao pro-
venientes de um POS (maquina de cartao, do ingles, Point of Sale) de um super-
mercado, isto e, uma loja fısica. O modelo escolhido foi uma RBM (do ingles,
Restricted Boltzmann Machine), com multiplas conexoes e acrescentando multiplas
camadas na camada intermediaria. Para o treinamento do modelo, um aumento do
numero de vendas foi considerado como alvo ”1”e uma diminuicao deste numero foi
considerado como alvo ”0”. Esta interpretacao do conjunto de dados transforma a
questao em um problema de classificacao e reduz o seu objetivo a previsao de um
aumento ou diminuicao do numero de vendas e nao uma predicao do numero em si.
Os resultados da RBM sao comparados a uma regressao logıstica e indicam que o
uso de uma tecnica de Deep Learning, neste caso, trouxe uma melhor nos nıveis de
precisao, sensibilidade e F-score.
7
Giuseppe e Valeria Nunnari [23] propoem uma abordagem para a previsao de
vendas mensais, utilizando um conjunto de dados com informacoes de vendas de 1992
ate 2016. O primeiro passo consiste na extracao da tendencia da serie temporal, pelo
metodo de medias moveis. Apos esta extracao, a serie sem tendencia e modelada
por modelos Autorregressivo Nao Linear (NAR), que utilizam Neuro-Fuzzy ou uma
RNA feedforward. Os resultados indicam que a utilizacao de um modelo nao linear
para a previsao traz benefıcios para as figuras de merito e que a abordagem que
utiliza Neuro-Fuzzy apresentou medidas ligeiramente melhores, se comparadas ao
uso de uma RNA feedforward.
Merino e Ramirez-Nafarrate [21] utilizam uma ideia que propoe a combinacao de
um modelo de interacao espacial e simulacao para a estimativa de vendas em uma
determinada loja e do impacto da abertura de uma nova loja numa determinada
regiao, baseado no comportamento de compras dos consumidores. O estudo de caso
real demonstra empiricamente esta abordagem com a construcao de um modelo de
interacao operacional de varejo para estimar o fluxo de gastos dos domicılios em
determinadas lojas. Foram utilizados o modelo Huff para representar a dinamica
da interacao entre as lojas e seus consumidores e simulacoes de Monte Carlo para
complementar as informacoes faltantes nesta modelagem. As estimativas foram com-
paradas com dados reais e os resultados, embora indiquem uma acuracia adequada,
tambem mostram que a previsao tende a ser subestimada, por causa de algumas
premissas adotadas.
No proximo capıtulo serao detalhadas as teorias de algumas tecnicas que podem
ser utilizadas para prever o perfil de consumo de uma loja.
8
Capıtulo 3
Fundamentacao Teorica
Neste capıtulo sera abordada a teoria que fundamenta o projeto. Inicial-
mente, serao introduzidas as series temporais. Posteriormente, alguns algoritmos de
aprendizado serao detalhados, bem como suas aplicacoes em series temporais. Por
fim, o capıtulo se encerra com modelos preditivos.
3.1 Series Temporais
Uma serie temporal e uma representacao para um conjunto de observacoes feitas
ao longo do tempo [24], isto e, uma sequencia que apresenta o comportamento de
uma ou mais variaveis ao longo do tempo. Uma serie temporal com N observacoes
pode ser representada como na Equacao 3.1, onde S e a serie temporal e as variaveis
S1 ate SN sao as amostras da serie no perıodo de tempo t = 1, 2, ..., N .
S = S1;S2; ...;SN (3.1)
Existem varios exemplos do dia a dia que podem ser representados como series
temporais, entre eles:
• A temperatura na cidade do Rio de Janeiro, no ultimo mes;
• Serie historica dos ındices de inflacao e taxas de juros;
• Indice pluviometrico mensal em Londres, no ano de 2017;
• Uma imagem [25, 26];
• Um eletrocardiograma
9
Series temporais podem ser utilizadas em uma variedade de campos: estatıstica,
processamento de sinais, engenharia, medicina e em muitos campos que envolvem
medidas no tempo. Segundo Chatfield [24], ha varios objetivos possıveis ao ana-
lisar uma serie temporal. Estes podem ser classificados em: descricao, explicacao,
predicao e controle. Descricao consiste em obter as medidas descritivas simples das
principais propriedades da serie e isto e realizado, primeiramente, atraves de um
grafico das observacoes ao longo do tempo. Neste primeiro passo, muitas vezes,
e possıvel observar periodicidade, pontos discrepantes (outliers), crescimentos ou
decrescimentos medios. Outro objetivo, ao analisar uma serie temporal, seria a ex-
plicacao, que pode ser empregada para, a tıtulo de exemplo, utilizar a variacao em
uma serie temporal para explicar uma variacao em outra. Mais um objetivo seria
a predicao de valores futuros de uma serie temporal. Por ultimo, tambem utiliza-
se essa abordagem para o controle de um sistema fısico ou economico, como por
exemplo, uma serie que e uma medida da qualidade de um processo industrial.
Uma serie temporal e chamada contınua quando suas observacoes sao feitas con-
tinuamente ao longo do tempo, ate mesmo quando as variaveis medidas so podem
assumir valores discretos. Por um outro lado, a serie temporal e chamada dis-
creta quando as observacoes sao tomadas em intervalos de tempo especıficos, mesmo
quando as variaveis medidas sao contınuas.
Se uma serie temporal pode ser predita sem erros associados, ela e dita como
determinıstica [24]. Porem, a maior parte das series e estocastica, o que significa
que as amostras futuras serao estimadas com um erro associado, ou seja, serao
apenas parcialmente determinadas pelas amostras passadas.
3.1.1 Decomposicao de Series Temporais
Segundo [27], a forma mais pratica de analisar uma serie temporal e decompondo-
na em series mais simples. Esta decomposicao pode ser aditiva, multiplicativa ou
mista. Tais componentes podem ser ser funcoes determinısticas no tempo ou nao
e a diferenca entre a serie completa e as componentes determinısticas e chamada
de serie residual. O que sobra na serie residual, isto e, a serie apos a extracao das
10
componentes determinısticas, sao duas componentes: uma cujos valores possuem
uma dependencia complicada (talvez nao linear) do tempo e uma outra serie que
apresenta valores considerados nao predizıveis (ruıdos nao correlatos). Ja as compo-
nentes determinısticas sao: tendencia, sazonalidade, ciclos senoidais e possivelmente
outros artefatos.
Este processo de decomposicao tambem torna-se importante quando e observada
a energia de cada uma dessas componentes. Em estatıstica, uma forma de esti-
mar a energia de uma serie temporal e calculando a sua variancia, ao longo do
tempo, e utilizando-se de uma analogia com sinais eletricos, e comum se referir a
esta variancia como espectro de potencia, mesmo quando nao ha potencia fısica en-
volvida [28]. A Figura 3.1 representa a energia de uma serie temporal, proveniente
da Time Series Data Library [29], referente ao numero, em milhares, de passageiros
mensais em companhias aereas internacionais. Em azul, esta representada a energia
da serie completa e, em laranja, esta representada a energia da serie sem tendencia.
E possıvel observar que a tendencia e a sazonalidade (em verde e vermelho, res-
pectivamente) possuem uma energia consideravelmente maior do que a energia da
serie residual (em roxo). Este fato pode dificultar o processo de aprendizado de um
modelo que visa prever a serie residual, que e onde se encontram as componentes
nao lineares (este conceito sera discutido na Secao 3.3). Deste modo, fica reforcada
a importancia do processo de decomposicao de series temporais.
3.1.2 Tendencia
Tendencia em uma serie temporal e a componente dita como uma representacao
grafica simplificada da serie. Tambem pode ser definida como uma mudanca a
longo prazo no comportamento da serie temporal, excluindo-se mudancas periodicas.
Segundo [30], uma das formas de se identificar a tendencia e ajustar os dados em
uma das funcoes parametricas descritas nas Equacoes 3.2, 3.3, 3.4 e 3.5, onde µt e
o nıvel medio local, no tempo t.
• Tendencia linear global (determinıstica):
µt = α + βt (3.2)
11
1951 1952 1953 1954 1955 1956 1957 1958 1959Year
0
1000
2000
3000
4000
5000
6000
7000
Rollin
g Va
riance
Power of Time Series ComponentsOriginal time seriesDetrended seriesTrendAnnual SeasonalityResidual series
Figura 3.1: Potencia da serie temporal, extraıda da Time Series Data Library, e
suas componentes
12
Onde α e β sao constantes que representam a interceptacao da reta com o eixo
vertical e coeficiente angular da reta, respectivamente.
• Tendencia linear (estocastica):
µt = αt + βtt (3.3)
Onde os parametros αt e βt evoluem com o tempo e representam a inter-
ceptacao local da reta e coeficiente angular local da reta, respectivamente.
• Curva de Gompertz [30]:
log(µt) = a+ brt (3.4)
Onde 0 < r < 1 e a e b sao parametros que definem a curva.
• Curva logıstica:
µt =a
1 + be−ct(3.5)
Onde a, b e c sao parametros que definem a curva.
Uma vez determinados os parametros da curva escolhida para a representacao da
tendencia, e possıvel realizar a extracao da tendencia, segundo a Equacao 3.6, onde
S(t) e a serie original e S1(t) e a serie sem tendencia.
S1(t) = S(t)− µt (3.6)
Dentre os tipos de tendencia que podem ser extraıdos, a mais utilizada e a
tendencia linear. Vale ressaltar tambem que utilizar uma tendencia muito com-
plicada pode indicar uma boa interpolacao para pontos do passado, mas talvez nao
apresente uma capacidade de generalizacao para pontos futuros.
Outro ponto importante a ser observado ao extrair a tendencia e se o compor-
tamento da mesma varia ao longo do tempo. Por este motivo, pode ser necessario
fazer a extracao da tendencia local, em uma janela de tempo menor do que a ja-
nela de aquisicao total. Na Figura 3.2, e possıvel observar diferentes extracoes de
tendencia, utilizando-se janelas de 12 meses (em laranja), 24 meses (em verde), 36
meses (em vermelho) e a janela de aquisicao total (em azul), para o mesmo banco de
13
1949 1951 1953 1955 1957 1959 1961Year
100
200
300
400
500
600Nu
mbe
r of p
asse
nger
s (in
thou
sand
s) Overall linear trendLinear trend (12-month window)Linear trend (24-month window)Linear trend (36-month window)
Figura 3.2: Estimativas de tendencias lineares da serie temporal, extraıda da Time
Series Data Library, utilizando diferentes janelas de observacao
dados citado na Secao 3.1.1, para ilustrar o impacto desta variacao. Observe que a
lacuna existente nos anos iniciais do grafico se deve ao fato da primeira amostra de
cada uma das formas de extracao necessitar de um numero de amostras pelo menos
igual ao numero de amostras contidas na janela de tempo escolhida para o calculo
da tendencia.
3.1.3 Sazonalidade e Ciclos Senoidais
A sazonalidade e a componente que representa padroes que se repetem em in-
tervalos de tempo regulares ou perıodos de tempo P. Por exemplo, espera-se que a
venda de picoles em determinado lugar apresente uma sazonalidade anual, por causa
do verao. Ja ciclos senoidais sao um caso particular de sazonalidade, na qual esta
possui a forma de uma senoide com perıodo P [27]. Desta forma, estes podem ser
modelados como um comportamento amortecido de uma senoide [31].
14
Uma proposta para a estimativa da sazonalidade seas(t) para cada instante
i = 1, 2, ..., P do perıodo e calcular o valor medio da serie neste instante a cada
perıodo, conforme representado na Equacao 3.7.
seas(i) =1
floor(NP
) floor(NP )−1∑
k=0
S1(i+ kP ), i = 1, 2, ..., P (3.7)
Onde N e o numero de amostras, S1(t) e a serie ja sem tendencia e floor(NP
)e o
resultado inteiro da divisao NP
, arrendondado para baixo, que representa o numero
de perıodos completos de sazonalidade que existem na serie.
Existem alguns tratamentos classicos que podem ser aplicados as series tempo-
rais para detectar sazonalidades e ciclos senoidais [32]. Um deles e a aplicacao da
transformada de Fourier, pelo algoritmo Fast Fourier Transform (FFT), que tem
como saıda os parametros a e b da expressao que caracteriza um ciclo senoidal,
representada pela Equacao 3.8.
cs(t) = a ∗ cos(2πft) + b ∗ sen(2πft) (3.8)
Outro metodo utiliza a autocorrelacao de uma serie temporal que, por sua vez, e
definida como a correlacao entre a serie s(t) e a mesma serie atrasada de k unidades
de tempo, y(t− k) [27].
Deste modo, e possıvel caracterizar uma sazonalidade quando ha uma autocor-
relacao significativa em atrasos multiplos de P (nP , onde n e inteiro) ou quando o
espectrograma tem raias em n/P , onde n e inteiro. Se a autocorrelacao apresentar
um aspecto de senoide ou houver frequencias altas no espectrograma, ha evidencias
para a existencia de ciclos senoidais. Vale ressaltar que tambem e possıvel determi-
nar o perıodo P da sazonalidade utilizando conhecimentos da fenomenologia (como
citado no exemplo).
Finalmente, para realizar a extracao da sazonalidade e dos ciclos senoidais, basta
subtrair os mesmos da serie temporal ja sem tendencia [27], no caso de uma decom-
posicao aditiva, conforme representado na Equacao 3.9.
S2(t) = S1(t)− seas[R
(t
P
)]− cs(t) (3.9)
15
1949 1951 1953 1955 1957 1959 1961Year
−100
−50
0
50
100
150
200Passengers
Overall ann al seasonalityAnn al Seasonality (48-month window)Annual Seasonality (60-month window)Annual Seasonality (72-month window)
Figura 3.3: Estimativas de sazonalidades anuais, da serie temporal, extraıda da
Time Series Data Library, utilizando diferentes janelas de observacao.
Onde S2(t) e a serie residual, cs(t) e um ciclo senoidal e R(
tP
)e o resto da divisao
tP
, que representa o instante i do perıodo da sazonalidade que corresponde ao tempo
t da serie.
Assim como na extracao da tendencia, e importante observar se o comportamento
da sazonalidade varia ao longo do tempo. Deste modo, pode ser necessario fazer a
extracao da sazonalidade localmente, em uma janela de tempo menor do que a
janela de aquisicao total. Na Figura 3.3, e possıvel observar diferentes extracoes de
sazonalidade anual, utilizando-se janelas de 48 meses (em laranja), 60 meses (em
verde), 72 meses (em vermelho) e a janela de aquisicao total (pontilhado, em azul),
para o mesmo banco de dados citado na Secao 3.1.1, para ilustrar o impacto desta
variacao. Vale ressaltar que a lacuna existente nos anos iniciais do grafico se deve
ao fato da primeira amostra de cada uma das formas de extracao necessitar de um
numero de amostras pelo menos igual ao numero de amostras contidas na janela de
tempo escolhida para o calculo da sazonalidade.
16
Figura 3.4: Modelo nao linear de um neuronio artificial
3.2 Redes Neurais Artificiais
Inspirado no funcionamento do cerebro e no neuronio biologico, o conceito de
Redes Neurais Artificiais foi introduzido em 1943 [33]. McCulloch e Pitts conce-
beram o modelo basico de neuronio, representado na Figura 3.4, que forma a base
para a construcao de Redes Neurais Artificiais. Segundo Haykin [34], um modelo
neural e composto por tres elementos basicos: sinapses, um somador e uma funcao
de ativacao. As sinapses sao caracterizadas por um peso ou forca atribuıdos a elas,
isto e, um sinal xj aplicado a entrada da sinapse j conectada ao neuronio k e mul-
tiplicado pelo peso sinaptico wkj. O somador e o elemento que soma os sinais de
entrada, ponderados pelas respectivas sinapses do neuronio. A funcao de ativacao
pode limitar a amplitude da saıda de um neuronio e inserir uma nao linearidade.
Alguns tipos de funcao de ativacao serao abordados com mais detalhes na Secao
3.2.1.
Em 1949, Hebb [35] criou uma hipotese de aprendizado baseado no mecanismo
de plasticidade neural (aprendizagem hebbiana). Esta teoria propoe uma explicacao
para a adaptacao dos neuronios no cerebro durante o processo de aprendizagem.
Pesquisadores, entao, comecaram a aplicar estas ideias em modelos computacionais.
17
Em 1958, Rosenblatt [36] criou um algoritmo para reconhecimento de padroes, o per-
ceptron. O perceptron foi originalmente projetado para ser uma maquina utilizada
para reconhecimento de imagem [37]. Neste modelo, os neuronios sao organizados
em camadas, uma de entrada e outra de saıda e os pesos das conexoes sao adapta-
dos a fim de se atingir a eficiencia sinaptica. Porem, uma limitacao importante e
que os perceptrons so sao capazes de aprender padroes linearmente separaveis. Um
exemplo classico desta limitacao foi descrito em 1969, no livro “Perceptrons” [38],
que mostrou que este tipo de algoritmo nao e capaz de aprender uma funcao XOR.
Uma generalizacao do perceptron e o modelo perceptron multi-camadas (do ingles,
Multilayer Perceptron, MLP), que consiste tipicamente numa camada de entrada,
uma ou mais camadas escondidas e uma camada de saıda. O Teorema da Apro-
ximacao Universal afirma que uma rede MLP, com uma unica camada escondida,
contendo um numero finito de neuronios e uma funcao de ativacao nao linear e um
aproximador universal [39].
A Figura 3.5 representa um exemplo de rede MLP, totalmente conectada, com
duas camadas escondidas. O sinal de entrada se propaga atraves da rede, da en-
trada para a saıda (sentido forward), camada por camada [34]. Enquanto que, para
o treinamento da rede neural e adaptacao dos pesos, e utilizado o algoritmo back-
propagation que, basicamente, consiste em duas etapas. Na primeira etapa, uma
entrada e aplicada na rede neural e seus efeitos sao propagados no sentido forward,
camada por camada ate chegar na ultima camada e produzir um vetor de saıdas
(neste momento, os pesos sinapticos sao fixos). Na segunda etapa, backward, os pe-
sos sao ajustados de acordo com uma regra para correcao do erro. Resumidamente,
a saıda atual da rede neural e subtraıda do valor esperado (alvo) gerando um erro,
que e propagado no sentido oposto das conexoes dos pesos sinapticos (retropro-
pagacao do erro, do ingles, error backpropagation). Por ultimo, os pesos sinapticos
sao ajustados de maneira a reduzir este erro, isto e, aproximar a saıda atual do valor
desejado, somando-se o fator ∆wij, representado na Equacao 3.10, a cada um dos
pesos sinapticos atuais.
∆wij = −η ∂E∂wij
(3.10)
18
Figura 3.5: Exemplo de estrutura de uma MLP
Onde wij e o peso sinaptico de um neuronio, E e uma funcao custo que mede a
dissimilaridade entre a saıda atual e o valor esperado e η e a chamada learning rate,
parametro que define o tamanho do passo de treinamento e, consequentemente, a
atualizacao do peso wij.
3.2.1 Funcao de Ativacao
A funcao de ativacao ou funcao de transferencia (ϕ(.), da Figura 3.4) de um
neuronio artificial tem como objeto calcular a saıda deste neuronio e pode restrin-
gir a amplitude da saıda para um valor finito, em funcao do valor do potencial
de ativacao (vk). Em redes MLP densamente conectadas, as funcoes de ativacao
mais utilizadas sao: degrau (Equacao 3.11), linear com saturacao (Equacao 3.12),
tangente hiperbolica (Equacao 3.13) e sigmoide (Equacao 3.14).
• Funcao degrau:
ϕ(v) =
1, se v ≥ 0
0, se v < 0
(3.11)
19
• Funcao linear com saturacao:
ϕ(v) =
1, se v ≥ +1
2
v, se + 12> v > −1
2
0, se v ≤ −12
(3.12)
• Funcao tangente hiperbolica:
ϕ(v) = tanh(v) (3.13)
• Funcao sigmoide:
ϕ(v) =1
1 + e−av(3.14)
Onde a e o parametro de inclinacao da sigmoide. Variacoes neste parametro
produzem sigmoides de diferentes inclinacoes.
Segundo [39], a funcao de ativacao mais utilizada na construcao de RNA e a funcao
sigmoide (ou a tangente hiperbolica, quando deseja-se um intervalo ente [-1,1] e nao
[0,1]). Uma caracterıstica importante destas funcoes e que elas sao diferenciaveis,
diferentemente da funcao degrau.
Caso o intuito do modelo seja obter saıdas contınuas, como e o caso de aplicacoes
em regressao, geralmente faz-se uso de neuronios lineares na saıda. Caso contrario,
onde se deseja obter saıdas discretas (classificacao), utiliza-se neuronios nao-lineares.
Existe tambem casos em que e interessante ter pelo menos um neuronio linear na
camada intermediaria, com o objetivo de facilitar o mapeamento de possıveis relacoes
lineares entre as entradas e saıdas [27].
3.2.2 Normalizacao dos Dados
Em muitos casos, os dados de entrada de uma RNA sao provenientes de diferentes
fontes, apresentam diversas faixas dinamicas e nao sao padronizados. Alem disso,
as funcoes de ativacao nao lineares, em geral, restringem a amplitude dos valores de
saıda de um neuronio. Neste contexto, surge a necessidade de realizar a normalizacao
dos dados, antes do processo de treinamento, para que os valores que passam pelos
neuronios possam corresponder ao intervalo de saıda destas funcoes [40], evitando
assim a saturacao dos dados.
20
O processo de normalizacao consiste em garantir que os dados de entrada este-
jam dentro de um intervalo previamente estabelecido. Geralmente, os intervalos
utilizados sao [-1,1] ou [0,1] e alguns exemplos de funcoes de normalizacao sao:
• Transformacao linear para o intervalo [0,1]:
xn =x0 − xmin
xmax − xmin
(3.15)
• Transformacao linear para o intervalo [a,b]:
xn =(b− a)(x0 − xmin)
xmax − xmin + a(3.16)
• Normalizacao estatıstica:
xn =x0 − xσ
(3.17)
• Normalizacao simples:
xn =x0xmax
(3.18)
• Normalizacao pela tangente hiperbolica:
xn = Ctanh(Dx0) (3.19)
Onde xn corresponde aos dados normalizados; x0 aos dados originais; xmin, xmax,
x e σ ao valor mınimo, valor maximo, media e desvio padrao dos dados originais,
respectivamente. As variaveis C e D sao parametros que ajustam a intensidade
da normalizacao pela tangente hiperbolica e serao discutidos com mais detalhes no
proximo capıtulo.
Vale ressaltar que a normalizacao pela tangente hiperbolica e uma boa alternativa
para lidar com os chamados outliers1. Este assunto tambem sera discutido mais
detalhadamente no proximo capıtulo.
1Um ponto de observacao dentro de um conjunto de dados que esta perceptivelmente distante
das outras observacoes deste mesmo conjunto [41].
21
3.2.3 Funcoes Custo
O conceito de funcao custo foi introduzido, em estatıstica, em 1950 [42]. Como
citado no fim da Secao 3.2, o processo de treinamento supervisionado de uma RNA
consiste em minimizar o erro entre a saıda predita e o valor desejado. A funcao custo
representa uma medida de dissimilaridade entre a predicao e o valor esperado. Por
este motivo, a funcao custo tambem pode ser utilizada para avaliar o desempenho
de uma RNA ja treinada. A funcao de erro mais comumente utilizada e o Erro
Medio Quadratico (do ingles, Mean Squared Error, MSE). Porem ha outras funcoes
tambem utilizadas na literatura que serao apresentadas abaixo [32].
• Erro Medio Quadratico (MSE):
MSE =1
N
N∑i=1
(ei)2 (3.20)
• Raiz do Erro Medio Quadratico (RMSE):
RMSE =√
MSE =
√√√√ 1
N
N∑i=1
(ei)2 (3.21)
• Erro Medio Percentual Absoluto (MAPE):
MAPE =100
N
N∑i=1
∣∣∣∣ eixi∣∣∣∣ (3.22)
• Correlacao: medir a correlacao de Pearson entre os valores estimados e os
valores reais.
r =cov(X, Y )√
var(X)√var(Y )
(3.23)
onde cov(X, Y ) e a covariancia entre X e Y e var(X) e var(Y ) sao as variancias
de X e Y .
3.3 Modelo NARMA
Modelos para a previsao de series temporais podem ter diversas formas e re-
presentar diferentes processos estocasticos. Os principais modelos encontrados na
literatura sao: Autorregressivos (do ingles, Autoregressive, AR) e Media Movel (do
22
Figura 3.6: Modelo ARMA ou NARMA
ingles, Moving Average, MA), representados nas Equacoes 3.24 e 3.25, respectiva-
mente. Estas duas classes de modelos possuem uma dependencia linear das amostras
passadas [43].
• Modelo Autorregressivo (AR):
Xt = α1Xt−1 + ...+ αpXt−p + Zt (3.24)
Onde Xt e um processo autorregressivo de ordem p, Zt um ruıdo branco gaus-
siano e αi sao parametros do modelo.
• Modelo de Media Movel (MA):
Xt = β0Zt + β1Zt−1 + ...+ βqZt−q + Zt (3.25)
Onde Xt e um processo de media movel de ordem q, Zt um ruıdo branco
gaussiano e βi sao parametros do modelo.
A combinacao destas duas abordagens resulta no modelo Autorregressivo de Media
Movel (do ingles, Autoregressive Moving Average, ARMA), definido na Equacao 3.26
e ilustrado na Figura 3.6, onde cada bloco ∆T indica um atraso de uma amostra.
Xt = α1Xt−1 + ...+ αpXt−p + Zt + β1Zt−1 + ...+ βqZt−q (3.26)
23
E possıvel observar que, no caso do modelo ARMA, o sistema e linear, ϕ(.) e
um simples ponderador e esta estrutura e conhecida como um filtro IIR (do ingles,
Infinite Impulse Response), em processamento de sinais. Porem, o bloco ϕ(.) pode
ser implementado com um modelo nao linear, como por exemplo uma RNA. Neste
caso, o modelo deixa de ser linear e recebe o nome de ARMA nao linear, NARMA
[44].
O modelo NARMA pode ter diversas aplicacoes, entre elas:
• Controle de temperatura e umidade de um sistema de uma estufa [45];
• Modelagem da dinamica de glicose do tecido subcutaneo [46];
• Reconhecimento de dıgitos falados [47];
• Aprimoramento da usinagem de uma CNC [48]
Segundo Caloba [27], o modelo NARMA (e suas simplificacoes NAR e NMA) e o
mais utilizado em conjunto com RNAs e um possıvel motivo para isto e o fato destes
modelos poderem ser facilmente reinicializados, uma vez que seu estado e composto
pelas entradas e saıdas do sistema atrasadas, variaveis facilmente observaveis.
No caso da aplicacao do NARMA para previsao de series temporais, a previsao de
uma proxima amostra da serie pode ser descrita como uma combinacao nao linear
de amostras passadas. Esta relacao esta representada na Equacao 3.27.
x(t+ k) = ϕ[x(t), x(t− 1), ..., x(t−M)] (3.27)
Onde M e a ordem do modelo.
Uma maneira de determinar a ordem do modelo e utilizando a funcao de Auto-
correlacao Parcial (do ingles, Partial Autocorrelation Function, PACF) [15]. Esta
funcao denota a correlacao parcial de uma serie temporal, com seus proprios valores
defasados, excluindo o efeito das amostras intermediarias (isto e, as amostras que
produzem um atraso menor). Ela difere da funcao de autocorrelacao, que nao exclui
estes atrasos menores. Na Figura 3.7, e possıvel observar a autocorrelacao parcial
24
0 10 20 30 40 50Lags
−0.6
−0.4
−0.2
0.0
0.2
0.4
0.6
0.8
1.0Pa
rtial Autoc
orrelatio
nPartial Autocorrelation of Time Series
Figura 3.7: Exemplo de autocorrelacao parcial da serie temporal descrita na Secao
3.1.1
da serie temporal utilizada como exemplo na Secao 3.1.1. E esperado que a auto-
correlacao parcial diminua, conforme o atraso aumenta, caso nao haja componentes
cıclicas.
25
Capıtulo 4
Metodo
Neste capıtulo serao descritas todas as etapas deste trabalho, bem como as justi-
ficativas para cada uma delas e os problemas contornados.
O modelo escolhido para realizar a previsao do perfil transacional deste lojista
e uma combinacao da decomposicao de series temporais, utilizando metodos es-
tatısticos, e um modelo NARMA, utilizando uma RNA, cujo diagrama especıfico
para series temporais esta representado na Figura 4.1.
O algoritmo foi implementado em Python, com o suporte das bibliotecas Ke-
ras [49] e Scikit-learn [50]. As cinco etapas da implementacao estao ilustradas na
Figura 4.2. A primeira etapa consiste no carregamento e preparacao dos dados
para as proximas etapas. Na segunda etapa, foi realizada a decomposicao de series
temporais, com extracao da tendencia e da sazonalidade. Na terceira etapa, foi
realizado o pre-processamento da serie residual, para que a mesma pudesse ser utili-
zada para o treinamento do modelo NARMA. A quarta etapa consiste na definicao
dos parametros e treinamento deste modelo. Por fim, a quinta etapa resume-se na
Figura 4.1: Modelo NARMA para Series Temporais
26
Figura 4.2: Diagrama em blocos do fluxo de trabalho
analise dos resultados e das figuras de merito para avaliacao do algoritmo.
4.1 Leitura dos Dados
O banco de dados utilizado e composto pelo historico de vendas que tiveram como
meio de pagamento o cartao de credito, realizadas em um determinado lojista, entre
abril de 2017 e agosto de 2017. Como as transacoes chegam de maneira assıncrona,
para extrair o perfil transacional deste lojista, foi necessario realizar um agrupamento
do numero de transacoes e decidir a janela de processamento a ser utilizada. Devido
ao grande volume de dados, 15 minutos foi a janela de processamento escolhida.
Caso a janela de processamento fosse maior, alguma variacao importante poderia ser
perdida e o tempo para tomada de decisao poderia ser muito grande (por exemplo,
detectar uma fraude apos horas do acontecimento pode ser muito tempo). Caso a
janela de processamento fosse menor, nao haveria informacao suficiente para cada
janela, a serie temporal poderia ter muito zeros, dificultando a identificacao do perfil
transacional.
27
4.2 Decomposicao da Serie Temporal
Como citado na Secao 3.1.1, uma serie temporal pode ser composta por:
• Tendencia
• Sazonalidade
• Componentes nao lineares
• Ruıdos nao correlatos (imprevisıveis)
O objetivo da decomposicao e extrair as componentes determinısticas (tendencia e
sazonalidade), gerando uma serie residual, formada pelas componentes nao lineares
e pelos ruıdos nao correlatos. Esta serie residual e utilizada para treinar o modelo
NARMA para prever as componentes nao lineares. Alem da predicao da serie resi-
dual, tambem se faz necessario realizar a predicao da tendencia e da sazonalidade.
Enfim, a combinacao destas tres predicoes compoe a predicao final.
4.2.1 Tendencia
A extracao da tendencia, inicialmente, foi realizada atraves de um metodo da bi-
blioteca StatsModel [51]. No entanto, a biblioteca nao fornecia nenhum metodo para
realizar a predicao desta componente. Alem disso, o tipo de tendencia implemen-
tado na biblioteca (baseado em medias moveis) nao foi considerado adequado para
o caso em questao, por nao apresentar uma boa capacidade de generalizacao para
pontos futuros. Deste modo, foi implementado um algoritmo para a identificacao e
predicao da tendencia linear, utilizando a funcao de regressao linear da biblioteca
SciPy [52].
Entao, o calculo da tendencia consiste no ajuste de uma reta nas amostras pas-
sadas da serie temporal. E, atraves da extensao desta reta, e possıvel realizar uma
estimativa para as amostras futuros da tendencia.
28
4.2.2 Sazonalidade
A extracao da sazonalidade e feita na serie temporal, ja sem tendencia. Esta
extracao foi primeiramente realizada utilizando a biblioteca StatsModel. Porem,
esta tambem nao apresenta um metodo para a predicao da sazonalidade. Assim
sendo, foi implementado um algoritmo que realizasse a operacao descrita na Equacao
3.7 e fosse capaz de fazer a predicao da sazonalidade para pontos futuros.
Vale ressaltar que um parametro crucial para o calculo desta componente e o
perıodo da sazonalidade. Este perıodo pode ser determinado por conhecimento da
fenomenologia ou por meio do periodograma da serie sem tendencia. Por conhe-
cimento da fenomenologia, espera-se uma sazonalidade diaria, porque, para este
lojista, o numero de vendas realizadas durante o dia e maior do que de madru-
gada. Ao analisar o periodograma da serie sem tendencia, que sera apresentado no
Capıtulo 5, sera possıvel observar tal sazonalidade. Apos a retirada da sazonalidade
diaria, foi feita uma nova analise do periodograma da serie residual, que tambem
sera apresentada no Capıtulo 5
4.3 Pre-processamento
O pre-processamento dos dados consistiu basicamente num processo de norma-
lizacao, para garantir que os valores da serie residual estivessem dentro do intervalo
[-1,1], antes de servirem de entrada para o modelo NARMA.
Para realizar a normalizacao, a primeira tecnica utilizada foi a de transformacao
linear para o intervalo [-1, 1], tambem chamada de normalizacao MinMax. Porem
uma questao identificada foi o fato de a maior parte dos dados ter ficado concentrada
no intervalo entre [-0,25, 0,25]. Isto poderia causar um problema no treinamento
do modelo, porque grandes variacoes de valores estariam sendo representadas por
pequenas variacoes da serie normalizada. Este ocorrido se deu devido a distribuicao
da serie residual, tambem muito concentrada e apresentando valores muito grandes
pouco frequentes (este fato sera detalhado na Secao 5.1).
29
Figura 4.3: Tangente hiperbolica
Uma solucao possıvel seria tratar os valores muito grandes como outliers e sim-
plesmente truncar a serie em um valor que tornasse a distribuicao mais dispersa,
de modo que a normalizacao pelo metodo de transformacao linear nao concentrasse
tanto os valores. Esta solucao nao foi considerada adequada, porque estes valores
maiores indicam momentos em que o numero de transacoes e muito grande e, embora
sejam menos frequentes, fazem parte do comportamento transacional deste lojista
(Secao 5.1). Entao, truncar estes valores seria perder uma informacao que retrata o
comportamento que deseja-se prever.
Para contornar estre problema, foi escolhida a normalizacao pela tangente hi-
perbolica, que realiza uma transformacao nao linear, segundo a Figura 4.3. Os
parametros C e D foram escolhidos de maneira que os valores da serie residual
que estao na regiao de 3 desvios-padrao coincidissem com a regiao de linearidade da
funcao. Deste modo, foi possıvel explorar a linearidade da tangente hiperbolica para
produzir uma serie residual normalizada com uma distribuicao menos concentrada.
4.4 Treinamento do Modelo NARMA
Apos o processo de decomposicao de series temporais e de normalizacao, obtem-
se uma serie residual normalizada que sera utilizada para treinamento do modelo
30
NARMA. O primeiro parametro que precisa ser escolhido e a ordem M do modelo
(vide Figura 4.1). Esta ordem indica quantas amostras passadas serao utilizadas
para o treinamento da previsao da proxima amostra. Para determinar a ordem do
modelo, foi utilizada a PACF. E esperado que a correlacao entre a amostra atual e
as amostras passadas va diminuindo, conforme o atraso e maior (ou o “passado” e
mais distante).
4.4.1 Treinamento da Rede Neural Artificial
A proxima etapa do processo compreende a realizacao do treinamento da Rede
Neural Artificial, bem como a escolha da sua topologia e parametros.
Para este trabalho foi escolhida uma rede MLP, com uma camada escondida,
ilustrada na Figura 4.4. A dimensao da camada de entrada e determinada pelos
dados de entrada. Para a determinacao do tamanho da camada escondida, foram
realizadas varias tentativas e escolheu-se a topologia que apresentou o menor RMSE
medio, para o conjunto de teste, pois representa a maior similaridade entre o alvo e
a predicao. Estes resultados serao apresentados no capıtulo seguinte.
A funcao de treinamento utilizada foi a gradiente descendente, com uma learning
rate constante e a funcao custo escolhida para minimizacao foi a MSE.
4.4.2 Validacao Cruzada
Para acessar a flutuacao estatıstica do processo de treinamento, foi utilizada a
validacao cruzada. Esta e uma tecnica utilizada para avaliar a capacidade de gene-
ralizacao de um determinado modelo. Principalmente para a construcao de predi-
tores, onde deseja-se medir o quao acurada e a predicao, esta tecnica fornece uma
maneira de obter esta medida e identificar o limite do modelo. Embora existam
varias abordagens para tal [53], a tecnica adotada neste trabalho consiste em es-
colher aleatoriamente amostras para compor o conjunto de treino e o conjunto de
teste. Estes dois subconjuntos sao mutualmente exclusivos. Esta divisao entao foi
feita algumas vezes e o resultado escolhido foi aquele que apresentou menor RMSE
para o conjunto de teste.
31
Figura 4.4: Estrutura da rede MLP utilizada
Vale ressaltar que esta tecnica, implementada usando a biblioteca Scikit-learn, nao
fornece garantia de que as repeticoes serao diferentes, porem isto e provavel para
conjuntos de dados suficientemente grandes. Alem disso, para extrair as figuras
de merito de validacao, foi separada previamente uma parte do conjunto de dados,
referente a ultima semana da janela de aquisicao utilizada.
4.5 Figuras de Merito
Quando se trata de predicao de series temporais, a representacao grafica e uma
boa maneira de avaliar o desempenho do modelo. Porem, para complementar esta
analise, foram escolhidas figuras de merito auxiliares para esta avaliacao.
A primeira delas, o RMSE (vide Equacao 3.21), e uma medida que diz o quao
distante (dissimilar) a predicao esta do valor esperado (ou alvo). A outra figura
utilizada foi a divergencia Kullback–Leibler [54] (tambem chamada de divergencia
KL ou entropia relativa), representada na Equacao 4.1. Esta segunda figura de
merito visa trazer uma medida de como a distribuicao de probabilidade da predicao
32
diverge da distribuicao de probabilidade da serie esperada. Para seu calculo, a
funcao densidade de probabilidade (do ingles, probability density function, PDF)
foi determinada atraves da estimativa de densidade por Kernel (do ingles, kernel
density estimation, KDE), com kernel quadrado que possui uma largura de banda
fixa, definida empiricamente.
DKL =∑i
P (i)logP (i)
Q(i)(4.1)
Onde P e Q sao distribuicoes de probabilidades discretas e DKL e a di-
vergencia KL de P para Q.
Alem disso, foi criada uma figura de merito especificamente para esta aplicacao,
cujo objetivo e demonstrar a capacidade do modelo utilizado de reconstruir o com-
portamento da serie esperada, isto e, se o modelo consegue prever se ha um cresci-
mento ou um decrescimento da serie. Uma medida que expressa este comportamento
e o calculo da diferenca entre a amostra atual e a amostra passada de cada uma
das series, que e dada por x(n)− x(n− 1), onde x(n) e uma amostra de uma serie
temporal no tempo n. Quando esta diferenca e positiva, ha um crescimento da serie
e quando esta e negativa, ha um decrescimento da serie. E realizado, entao, o calculo
desta diferenca para as amostras da serie predita e da serie alvo. O numero de vezes
em que as diferencas correspondentes de ambas as series apresentam o mesmo sinal
e contado como um acerto. O numero de acertos dividido pelo numero total de
amostras foi chamado de acuracia de comportamento.
33
Capıtulo 5
Resultados Experimentais
Este capıtulo sera destinado para a apresentacao dos dados utilizados para a
realizacao deste trabalho, bem como os resultados obtidos.
5.1 Banco de Dados
Como ja citado na Secao 4.1, o banco de dados utilizado neste trabalho e composto
pelo perfil transacional de um determinado lojista, com janelas de processamento
de 15 em 15 minutos, considerando uma janela de aquisicao de 4 meses. A Figura
5.1 apresenta 4 graficos, onde o eixo das abscissas corresponde ao tempo e o eixo
das ordenadas corresponde ao numero de transacoes em um intervalo de 15 minutos.
Cada um dos graficos e referente a um intervalo de um mes e a escala do eixo das
abscissas representa um dia.
Nestes graficos temporais, e possıvel observar que o comportamento da serie tem-
poral apresenta uma complexidade nao linear com o tempo e tambem uma compo-
nente cıclica. Vale ressaltar tambem que, em alguns momentos, ha picos de 2000 ou
mais transacoes, que nao ocorrem de forma periodica e que tambem nao podem ser
considerados outliers, pois fazem parte do comportamento transacional.
Ja na Figura 5.2 esta representado o histograma do banco de dados completo, isto
e, o histograma do numero de transacoes que ocorreram nos intervalos de 15 minutos,
ao longo destes 4 meses. E possıvel observar dois picos importantes: marcados com
fundos vermelho e lilas, em torno de 0 e 1000 transacoes, respectivamente, que e
34
Apr 17 May 1731 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 01 02
0
1000
2000
Coun
t Transac
tions
May 17 Jun 1730 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 01 02
0
1000
2000
Coun
t Transac
tions
Jun 17 Jul 1731 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 01 02
0
1000
2000
Coun
t Transac
tions
Jul 1730 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
0
1000
2000
Coun
t Transac
tions
Figura 5.1: Grafico temporal do banco de dados completo
35
Figura 5.2: Histograma do banco de dados
36
um comportamento esperado para um grande lojista. Outro ponto importante e
a presenca de algumas ocorrencias com mais de 2000 transacoes, o que reforca o
porte deste lojista. Ademais, estes fatos mostram que a distribuicao dos dados e
bimodal, o que descarta a possibilidade de assumir uma distribuicao gaussiana e
tambem indica que ha uma composicao de dois comportamentos distintos. Este
indıcio, aliado ao comportamento temporal visto na Figura 5.1 motivou uma analise
comportamental por perıodo do dia. Esta analise esta representada no grafico da
Figura 5.3, que contem um histograma com as transacoes que ocorreram entre 11h
e 23:45h e outro histograma com as transacoes que ocorreram entre 00h e 10:45h.
Este grafico confirma a hipotese da existencia de dois comportamentos. Alem disso,
esta analise mostra que no intervalo de tempo entre 00h e 10:45h ha um volume
de compras baixo, com o valor da moda proximo de zero, o que e esperado para o
perıodo da madrugada. Ja no intervalo entre 11h e 23:45h, o volume de compras
e maior, com a moda em torno de 1000 transacoes em 15 minutos, indicando que,
neste perıodo, a atividade de vendas e mais intensa.
Na Figura 5.4, encontra-se o periodograma da serie temporal. Os eixos de or-
denadas e abscissas deste grafico sao, respectivamente, potencia (em numero de
transacoes ao quadrado) e frequencia (em Hz). As caixas de texto apontando para
cada um dos picos indicam o valor correspondente ao perıodo que tais picos re-
presentam. Os picos sao resultado de uma energia maior para estas componentes
de frequencia. Ha um indicativo forte de sazonalidade em 24 horas, e outros pi-
cos correspondentes a um perıodo de 12 horas que sao possıveis harmonicos desta
sazonalidade diaria. Outra informacao importante e a existencia de um pico na
frequencia de 0 Hz, indicando a presenca de um nıvel DC. Vale ressaltar tambem
que os valores correspondentes ao perıodo destes picos nao sao numeros inteiros.
Esta informacao pode significar que o perıodo exato da sazonalidade pode estar em
um momento que a janela de processamento nao e capaz de enxergar. Por exem-
plo: 11,96 horas e equivalente a 11 horas, 57 minutos e 36 segundos, um perıodo
que a janela de processamento de 15 minutos nao tem granularidade suficiente para
mostrar.
37
0 500 1000 1500 2000 2500Possible Values
0
100
200
300
400
Occurences
Count Transactions Histogram per PeriodBetween 11h and 23:45hBetween 00h and 10:45h
Figura 5.3: Histogramas do banco de dados, dividido por perıodo do dia
38
0 110000 s
14999 s
13333 s
12500 s
12000 s
Frequency (Hz)
0.0
0.2
0.4
0.6
0.8
1.0
Powe
r Spe
ctru
m
1e1224.02 h
12.01 h
11.96 h
Periodogram of Original Series
0 110000 s
14999 s
13333 s
12500 s
12000 s
0.0
0.5
1.0
1.5
2.0 1e10
Figura 5.4: Periodograma da serie temporal completa
39
5.2 Decomposicao de Series Temporais
O processo de decomposicao de series temporais foi realizado atraves da extracao
da tendencia linear e da sazonalidade, com o objetivo de extrair as componentes
determinısticas da serie temporal. Foi necessario adotar duas formas de extracao
diferentes: global, considerando toda a janela de aquisicao e local, considerando
uma janela de tempo menor e estimando a proxima amostra. Isto foi necessario
porque, em condicoes reais, para realizar a predicao da proxima amostra de uma serie
temporal, e necessario realizar tambem a predicao da tendencia e da sazonalidade
correspondentes a esta amostra e limitar a janela de observacao historica. Entao,
a extracao local simula tais condicoes, adotando uma janela deslizante menor e
estimando o proximo ponto de tendencia ou sazonalidade.
5.2.1 Tendencia
O tipo de tendencia escolhido foi a tendencia linear, para evitar que tipos muito
complexos nao generalizassem bem para pontos futuros.
Na Figura 5.5, que contem a tendencia para toda a janela de aquisicao, e in-
teressante observar que, mesmo a regressao linear, que e um metodo simples, ja
consegue trazer informacoes relevantes, como o crescimento do numero de vendas.
Esta reta possui coeficiente angular 0,007 e interceptacao com o eixo das ordenadas
em 682,943, indicando que este crescimento e suave. Esta suavidade no crescimento
pode ser mais facilmente observada na Figura 5.6, que apresenta a serie original e a
tendencia no mesmo grafico, para o mes de julho de 2017 e ilustra como a tendencia
e praticamente um valor constante, quando comparada a serie completa.
Na Figura 5.7, e possıvel observar o grafico da serie sem tendencia, que apresenta
valores negativos, por causa do aspecto da tendencia e ainda apresenta os picos e
comportamento sazonal.
O periodograma da serie sem tendencia esta representado na Figura 5.8, cu-
jos eixos de ordenadas e abscissas sao, respectivamente, potencia (em numero de
transacoes ao quadrado) e frequencia (em Hz). Este grafico se assemelha ao perio-
40
Apr 17 May 17 Jun 17 Jul 1701 04 07 10 13 16 19 22 25 28 01 04 07 10 13 16 19 22 25 28 31 03 06 09 12 15 18 21 24 27 30 03 06 09 12 15 18 21 24 27 30
Date
680
700
720
740
760
Coun
t Transac
tions
Linear Trend
Figura 5.5: Tendencia linear para toda a janela de aquisicao
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
0
500
1000
1500
2000
2500
Coun
t Transactio
ns
Original Time SeriesLinear Trend
Figura 5.6: Tendencia linear e serie original para julho de 2017
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
−500
0
500
1000
1500
Coun
t trans
actio
ns
Detrended Series
Figura 5.7: Serie sem tendencia, em julho de 2017
41
0 110000 s
14999 s
13333 s
12500 s
12000 s
Frequency (Hz)
0.0
0.2
0.4
0.6
0.8
1.0
Powe
r Spe
ctru
m1e12
24.02 h
12.01 h
11.96 h
Periodogram of Detrended Series
0 110000 s
14999 s
13333 s
12500 s
12000 s
0.0
0.5
1.0
1.5
2.0 1e10
Figura 5.8: Periodograma da serie sem tendencia
dograma da Figura 5.4. A principal diferenca e a diminuicao da amplitude do pico
em 0 Hz, o que reforca a ideia de que extrair a tendencia e, de fato, alterar o nıvel DC
da serie temporal. Os outros aspectos, como a presenca de picos, com harmonicos,
que indicam sazonalidade diaria, sao semelhantes nas duas Figuras. Este grafico,
entao, foi utilizado para determinar o perıodo da sazonalidade, que foi de 24 horas.
5.2.2 Sazonalidade
Apos a extracao da tendencia, foi realizado o calculo e extracao da sazonali-
dade diaria. A sazonalidade diaria da serie temporal foi calculada de acordo com a
Equacao 3.7 e pode ser observada na Figura 5.9.
5.2.3 Decomposicao Completa e Serie Residual
Por fim, apos o calculo da tendencia linear e da sazonalidade diaria, tem-se o
grafico que resume o processo de decomposicao global, na Figura 5.10, ja descritos
42
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
−600
−400
−200
0
200
400Co
unt T
rans
actio
ns
24h Seasonality
Figura 5.9: Sazonalidade diaria, em julho de 2017
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Da e
−500
0
500
1000
1500
2000
2500
Coun
Tra
nsac
ions
Time Series Decomposi ionOriginalLinear Trend24h Seasonali y
Figura 5.10: Tendencia global, sazonalidade global e serie original
nas Secoes 5.2.2 e 5.2.1 e mostra que as componentes estao acompanhando o com-
portamento da serie original. Um detalhe importante a ser observado e a presenca
de um pequeno pico no momento com menor numero de transacoes de alguns dias.
A sazonalidade incorpora este comportamento, que nao esta presente em todos os
dias, como por exemplo nos dias 15 e 16 de julho.
Alem disso, tambem foi realizada a decomposicao local, para a simulacao das
condicoes reais de operacao, que esta representada na Figura 5.11. A janela desli-
zante utilizada para esta decomposicao foi de 7 dias, determinada empiricamente. E
possıvel observar que a tendencia linear, quando extraıda localmente, apresenta uma
pequena oscilacao, demonstrando seu comportamento dinamico ao longo do tempo.
A sazonalidade tambem apresenta uma pequena variacao, porem menos significativa
que a da tendencia.
Apos a extracao da sazonalidade e da tendencia, obtem-se a serie residual, que
sera a base para o treinamento do modelo NARMA. Esta serie residual pode ser
observada na Figura 5.12. Vale ressaltar que os picos observados na Figura 5.1 ainda
43
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
−500
0
500
1000
1500
2000
2500Co
unt T
ans
actio
ns
Time Se ies Decomposition (Online)O iginalOnline Linea T endOnline 24h Seasonality
Figura 5.11: Serie original e estimativas de tendencia e sazonalidade locais
existem, porem o comportamento sazonal foi retirado. E possıvel perceber que a
serie residual apresenta um aspecto muito mais complicado do que a serie original,
o que e um indicativo de que o que sobra na serie residual sao as componentes nao
lineares.
Na Figura 5.13, esta representado o periodograma da serie residual, com os mes-
mos eixos da Figura 5.4. E possıvel notar que as amplitudes dos picos reduziram,
de uma ordem de grandeza de 1012 para 109 e que os perıodos correspondentes a
estes picos parecem representar harmonicos em torno da sazonalidade diaria ja ex-
traıda. Este fato pode ser justificado pela presenca de uma sazonalidade de perıodo
nao divisıvel pelo tamanho da janela de processamento adotada (15 minutos), o
que impossibilitaria a completa remocao desta sazonalidade. Alguns testes para a
extracao de sazonalidades com perıodos menores (12 horas ou 1 hora) foram rea-
lizados, porem estes testes demonstraram que estas extracoes inseririam oscilacoes
na serie residual, nao existentes na serie original. Por este motivo, a possibilidade
de extrair sazonalidades com perıodos menores foi descartada.
Vale ressaltar que, para o treinamento da RNA, foi utilizada a serie residual,
resultante da decomposicao global. Ja para a reconstrucao (adicao da tendencia
e sazonalidade) da serie residual prevista, foi utilizada a tendencia e sazonalidade
locais. Esta escolha foi baseada nas condicoes de operacao reais, onde na aplicacao
da RNA tem-se o conhecimento da serie historica para realizar a extracao global,
porem, na hora de reconstruir a previsao da RNA, e necessario realizar tambem uma
previsao da tendencia e da sazonalidade, como foi feito na extracao local.
44
Apr 17 Ma 1731 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 01 02
−1000
0
1000
Coun
t Transactio
ns
Ma 17 Jun 1730 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 01 02
−1000
0
1000
Coun
t Transactio
ns
Jun 17 Jul 1731 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 01 02
−1000
0
1000
Coun
t Transactio
ns
Jul 1730 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
−1000
0
1000
Coun
t Transactio
ns
Residual Series
Figura 5.12: Serie residual, sem tendencia e sazonalidade
45
0 110000 s
14999 s
13333 s
12500 s
12000 s
Frequency (Hz)
0
1
2
3
4
5
Powe
r Spectrum of R
esidual Series
1e912.93 h
480.46 h288.27 h
Periodogram of Residual Series (Without trend and 24h seasonality)
Figura 5.13: Peridograma da serie residual, sem tendencia e sazonalidade
46
Apr 17 May 17 Jun 17 Jul 1701 04 07 10 13 16 19 22 25 28 01 04 07 10 13 16 19 22 25 28 31 03 06 09 12 15 18 21 24 27 30 03 06 09 12 15 18 21 24 27 30
Date
0
50000
100000
150000
200000
250000Ro
lling
Varia
nce
Power of Time Series and its ComponentsOriginal time seriesDetrended seriesTrendSeasonality (24h)Residual series
Figura 5.14: Potencia da serie original, componentes e serie residual
5.2.4 Potencia das Componentes da Serie Temporal
Na Figura 5.14, o eixo das abscissas representa a data, com resolucao diaria, e
o eixo das ordenadas contem a variancia movel, calculada com uma janela desli-
zante com a largura de 7 dias, determinada empiricamente. Neste grafico e possıvel
observar a potencia da serie original (em azul), cujo valor e igual a potencia da
serie sem tendencia (pontilhado, em laranja). Este fato ocorre porque a tendencia
linear estimada apresentou um coeficiente angular tendendo a zero. Assim sendo, o
comportamento esperado para uma reta de coeficiente angular proximo a zero e de
potencia variacional com valor pequeno, como observado na figura em questao. Caso
o coeficiente angular apresentasse significativamente maior do que zero, este fato se-
ria refletido na presenca de potencia variacional. Ademais, e possıvel observar que
a potencia da sazonalidade (em rosa) representa uma parte significativa da potencia
total, o que faz com que a potencia da serie residual (em roxo) seja muito menor do
que a potencia total. Isto se deve ao fato de a sazonalidade ter uma amplitude alta.
Estas observacoes confirmam a importancia da extracao da tendencia e sazonalidade
e da utilizacao de um metodo nao linear para o aprendizado especificamente da serie
residual, pois o alto valor energetico da sazonalidade poderia ser prejudicial para
este processo.
Na Figura 5.15, estao os histogramas da serie original, da serie sem tendencia
e da serie residual (sem tendencia e sazonalidade diaria), em azul, laranja e roxo,
respectivamente. Neste grafico, e possıvel observar que a extracao da tendencia
provoca apenas um deslocamento da distribuicao da serie original. Por outro lado,
47
−1000 −500 0 500 1000 1500 2000 2500Possible Values
0
200
400
600
800
1000
1200
1400Oc
curences
Count Transactions HistogramOriginal seriesDetrended seriesDetrended and without seasonalit 24h
Figura 5.15: Histogramas da serie original, serie sem tendencia e serie residual
a extracao da sazonalidade exclui a condicao de bimodalidade, resultando numa
distribuicao unimodal, bem concentrada em torno de zero, apresentando valores
mais altos pouco frequentes.
5.2.5 Reconstrucao da Serie Temporal, com Tendencia e Sa-
zonalidade
Ao somar a tendencia e sazonalidade horaria, extraıdas localmente, obtem-se uma
reconstrucao da serie temporal utilizando apenas estas componentes determinısticas.
O histograma desta reconstrucao esta representado, em marrom, na Figura 5.16,
juntamente com o histograma da serie original, em azul. E possıvel notar que o
pico originalmente existente proximo de zero (vide histograma, em azul) nao foi
devidamente reconstruıdo apenas com estas componentes. Alem disso o outro pico
existente em torno de 1000 (vide histograma, em azul) tambem nao e alcancado
48
0 500 1000 1500 2000 2500Possible Values
0
100
200
300
400
Occu
renc
esCount Transactions Histogram
Original SeriesReconstructed Series (online trend + season. 24h)
Figura 5.16: Histogramas da serie original e da serie reconstruıda com tendencia e
sazonalidade horaria
(vide histograma, em marrom). Outro ponto importante sao as ocorrencias entre
2000 e 2500 transacoes que tambem nao sao alcancadas. Estas limitacoes destas
componentes determinısticas sao motivacoes para o uso de um metodo nao linear,
que seja capaz de prever estes comportamentos possivelmente nao lineares.
5.3 Pre-processamento dos Dados
Antes da serie residual, representada na Figura 5.12, servir como entrada para o
modelo NARMA, foi realizado um processo de normalizacao.
49
−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00Possible Values
0
200
400
600
800
1000
1200
1400Oc
curences
Count Transactions HistogramNormalized Residual Series (MinMax)
Figura 5.17: Histograma da serie residual normalizada pela tecnica MinMax
5.3.1 Normalizacao
Como citado na Secao 4.3, a primeira tentiva de normalizacao foi realizada pela
tecnica MinMax e o problema descrito naquela mesma secao pode ser observado na
Figura 5.17. E possıvel notar que a maior parte dos dados ficou concentrada no
intervalo [-0,25, 0,25], como descrito anteriormente.
Para resolver este problema, foi realizada a normalizacao pela tangente hiperbolica,
cujo histograma pode ser observado na Figura 5.18. Esta normalizacao foi realizada
de maneira que os valores que estao dentro do intervalo marcado pelas linhas verme-
lhas da Figura 5.19 coincidissem com a regiao de linearidade da tangente hiperbolica,
tambem marcada com linhas vermelhas na Figura 4.3. Este histograma demonstra
uma distribuicao mais espalhada, confirmando que a exploracao da linearidade da
tangente hiperbolica foi eficaz para resolver o problema em questao.
50
−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00Possible Values
0
50
100
150
200
250
300
350
Occu
renc
es
Count Transactions HistogramNormalized Residual Series (tanh; C = 1; D = 2/(3*std))
Figura 5.18: Histograma da serie residual normalizada pela tangente hiperbolica
51
−1000 −500 0 500 1000 1500Possible Val es
0
200
400
600
800
1000
1200
1400
Occ rences
Co nt Transactions HistogramResid al Series witho t trend and season. 24h
Figura 5.19: Histograma da serie residual
52
Jul 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
−1.0
−0.5
0.0
0.5
1.0Co
unt T
rans
actio
ns
Residual Series
Normali ed Residual Series
Figura 5.20: Serie residual normalizada, em julho de 2017
Na Figura 5.20, esta retratada uma parte do grafico temporal da serie residual
normalizada, referente a julho de 2017. E possıvel constatar que os picos foram
suavizados e os valores proximos de zero foram mais espalhados. A serie residual
normalizada para toda a janela de aquisicao servira de entrada para o treinamento,
teste e validacao do modelo NARMA.
5.3.2 Determinacao da Ordem do Modelo
Apos a normalizacao da serie residual, foi necessario realizar a escolha da ordem
M do modelo NARMA, ilustrada na Figura 4.1. Para fazer esta escolha, foi utilizado
o grafico de Autocorrelacao Parcial da serie residual normalizada, representado na
Figura 5.21. Nota-se que, conforme esperado, a PACF diminui conforme o atraso
aumenta e, por isso, foi escolhida a ordem 6 para o modelo NARMA. Isto significa
que a entrada da RNA sera composta pelas amostras x(n), x(n − 1), x(n − 2),
x(n− 3), x(n− 4), x(n− 5) e x(n− 6).
5.4 Parametros da RNA
Para realizar treinamento da RNA foi executado um processo de validacao cru-
zada, com 10 sorteios, separando 25% do conjunto para teste e escolhendo-se o sor-
teio que apresentasse o menor RMSE de teste, que foi considerado o melhor sorteio.
Ademais, a ultima semana da serie temporal foi separada para compor o conjunto de
validacao. Para determinacao do numero de neuronios na camada escondida, houve
uma variacao de 1 a 10 neuronios, com validacao cruzada para cada uma destas
topologias. Na Figura 5.22, esta exposto o resultado desta variacao, com o valor do
53
0 5 10 15 20 25 30Lags
0.0
0.2
0.4
0.6
0.8
1.0Pa
rtial Autoc
orrelatio
nPartial Autocorrelation of Normalized Residual Time Series
Figura 5.21: Autocorrelacao parcial da serie residual normalizada
RMSE de teste, acompanhado da flutuacao estatıstica da validacao cruzada, no eixo
das ordenadas e o numero de neuronios na camada escondida, no eixo das abscissas.
Foi escolhida a topologia de 9 neuronios, embora a variacao do RMSE seja pequena
e praticamente dentro da barra de erro.
Alem disso, as funcoes de ativacao da camada escondida sao tangentes hiperbolicas
e da camada de saıda, composta por 1 neuronio, e linear. A funcao custo utilizada
foi MSE e a funcao de otimizacao gradiente descendente, com learning rate de 0,01.
5.5 Resultados do Modelo NARMA
Esta secao sera dedicada a apresentacao dos resultados de treinamento, teste e
validacao do modelo NARMA. Os resultados apresentados correspondem ao melhor
sorteio da topologia escolhida, isto e, aquele que apresentou o menor RMSE de teste.
54
1 2 3 4 5 6 7 8 9 10Neurons hidden layer
0.2150
0.2175
0.2200
0.2225
0.2250
0.2275
0.2300
0.2325Te
st RMSE
Figura 5.22: RMSE para uma variacao de 1 a 10 neuronios na camada escondida
5.5.1 Serie Residual
Na Figura 5.23, em azul esta representado o valor esperado da serie residual e, em
vermelho, a saıda residual da RNA para o conjunto de treino, para o perıodo de 1
de abril ate 14 de abril de 2017, para melhor visualizacao. O RSME para o melhor
conjunto de treinamento foi 0,228.
Neste grafico e possıvel observar que a RNA foi treinada adequadamente e conse-
gue acompanhar o comportamento do valor esperado, mesmo com a evidente com-
plexidade do mesmo. Uma figura de merito que expressa este comportamento e
a acuracia de comportamento, definida na Secao 4.5. Neste caso, a porcentagem
da acuracia de comportamento foi de 80,32%. Porem, e interessante ressaltar que,
algumas vezes, a RNA nao alcanca a amplitude dos picos existentes, como e o caso
do pico negativo, entre 11 e 12 de abril.
Ja na Figura 5.24, esta representada a saıda da RNA para o melhor conjunto de
teste (em vermelho), comparada com o valor esperado (em azul). Os pontos pretos
representam o valor absoluto do erro para aquela amostra. O RMSE para o conjunto
55
Apr 1701 02 03 04 05 06 07 08 09 10 11 12 13 14
Date
−1.0
−0.5
0.0
0.5
1.0No
rmalize
d Re
sidual V
alues
Residual Training Set (A ril 1 - April 14)TargetNN Output
Figura 5.23: Saıda da rede neural, para o conjunto de treino, comparada ao alvo
Jun 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15
Events
−1.0
−0.5
0.0
0.5
1.0
Nor alized Residual Values
Residual Test Set (Jun 1 - Jun 15)TargetOutput of NNAbsolute Value of Error
Figura 5.24: Saıda da rede neural, para o conjunto de teste, comparada ao alvo
de teste foi de 0,211 e a acuracia de comportamento foi 80,05%. Mais uma vez, e
possıvel notar que a RNA acompanha o comportamento da serie original, sendo
capaz de generalizar para o conjunto de teste, porem, embora seja capaz de indicar
a existencia de um pico, muitas vezes nao chega na amplitude esperada, como e o
caso do pico negativo entre os dias 7 e 8 de junho.
5.5.2 Serie Reconstruıda
A Figura 5.25 representa, em vermelho, a saıda da RNA reconstruıda, isto e,
acrescida da tendencia e sazonalidade diaria estimadas para os pontos correspon-
dentes. Em azul, esta representada a serie temporal que se deseja obter, tambem
para o intervalo entre 1 e 31 de maio. Mais uma vez e possıvel constatar que a
previsao acompanha satisfatoriamente o formato da serie original, embora nao seja
capaz de alcancar a amplitude dos picos muito grandes, que destoam do compor-
tamento mais comum. O RMSE para a serie reconstruıda foi 226,498 e a acuracia
de comportamento foi 70,91%. Porem, ao calcular o RMSE para as amostras com
valor esperado menor do que 1500 obtem-se o valor de 179,907, enquanto que o
56
May 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
0
500
1000
1500
2000
2500Co
unt T
rans
actio
ns
Reconstructed Output (May 1 - May 31)OriginalNN Output
Figura 5.25: Saıda da rede neural reconstruıda, para o conjunto de teste, comparada
ao alvo
RMSE para amostras com valor esperado maior do que 1500 foi de 800,421. Esta
discrepancia entre os RMSE para diferentes valores do alvo confirma a hipotese de
que o modelo tem dificuldade para prever os valores muito altos, que sao menos
frequentes, mas acabam por aumentar o valor do RMSE.
5.5.3 Serie Reconstruıda Nao Negativa
Ao reconstruir a serie, foram obtidos alguns valores negativos (vide Figura 5.25),
que nao possuem sentido real para o problema em questao, pois nao e factıvel ter
um numero de transacoes negativo. Para lidar com este problema, estes valores
negativos foram mapeados para zero, obtendo-se o resultado ilustrado na Figura
5.26. Para esta reconstrucao nao negativa, o RMSE foi de 225,848, apenas 0,2%
menor do que o RMSE para a saıda que inclui valores negativos. Alem disso, a
acuracia de comportamento agora foi de 70,75%. O RMSE para valores esperados
menores do que 1500 caiu para 179,061. Embora esta mudanca represente pequenas
melhoras nas metricas, ela e importante para trazer um sentido real para a predicao
e seria uma adaptacao necessaria para a implementacao deste sistema em casos reais.
5.5.4 Serie Reconstruıda com Decomposicao
Uma forma alternativa de obter uma predicao para a serie temporal e apenas so-
mando a tendencia e sazonalidade que foram estimadas, sem acrescentar a previsao
obtida pelo modelo NARMA. Esta forma de reconstruir a serie temporal, apenas com
a decomposicao esta ilustrada na Figura 5.27. Nota-se que esta forma de predicao
57
May 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
0
500
1000
1500
2000
2500Co
unt T
rans
actio
ns
Non-negative Reconstructed Output (May 1 - May 31)OriginalNon-negative NN Output
Figura 5.26: Saıda da rede neural reconstruıda nao negativa, para o conjunto de
teste, comparada ao alvo
May 1701 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Date
0
500
1000
1500
2000
2500
Count T
ransactio
ns
Original and Decomposition (May 1 - May 31)OriginalTrend + 24h Seasonality
Figura 5.27: Serie temporal reconstruıda com tendencia e sazonalidade diaria, para
o conjunto de teste, comparada ao alvo
acompanha o comportamento geral da serie temporal, porem nao acompanha mu-
dancas bruscas os picos pouco frequentes. O RMSE alcancado foi de 211,646, com
acuracia de comportamento de 80,21%. Para os momentos em que o valor esperado
era menor que 1500, o RMSE foi de 161,704 e, para os momentos restantes (valor
esperado maior do que 1500), o RMSE foi de 790,681. Outra vez e possıvel constatar
que prever os picos de maior amplitude sao um problema complexo, que aumenta o
RMSE.
5.5.5 Histograma do Erro
Uma ponto importante a ser avaliado e a distribuicao do erro. Na Figura 5.28,
ao lado esquerdo esta representado o histograma do erro entre a saıda nao negativa
da RNA e o valor esperado. Observa-se que o erro apresenta uma distribuicao
aproximadamente simetrica, o que indica que o erro nao tem vies. No grafico do
lado direito, o histograma em vermelho representa a distribuicao da predicao nao
58
−1000 −500 0 500 1000 1500Possible Values
0
25
50
75
100
125
150
175Oc
cure
nces
Error His ogram
0 500 1000 1500 2000 2500Possible Values
0
20
40
60
80
100
Occu
renc
es
NN ou pu and Tru h His ogramsTru hRecons ruc ed NN Ou pu
Figura 5.28: A esquerda, histograma do erro; a direita, histogramas da serie esperada
(em azul) e da serie predita (em vermelho)
negativa da RNA e, em azul, a distribuicao da serie temporal esperada. Nota-se, no
histograma em vermelho, a existencia de um pico em zero, devido ao mapeamento
dos valores negativos. O pico da distribuicao original, ja ressaltado na Secao 5.1 e
aproximadamente reconstruıdo com a previsao da RNA. Alem disso, fica claro que
o formato da distribuicao e a bimodalidade sao alcancados.
Na Figura 5.29, a tıtulo de comparacao, estao representados os histogramas da
serie original, da serie reconstruıda com o modelo NARMA e da serie reconstruıda
apenas com a decomposicao, em azul, vermelho e marrom, respectivamente. E
possıvel notar que nenhuma das duas formas de predicao alcancam os valores espe-
rados maiores que 1800, embora a RNA ainda alcance valores um pouco maiores do
que a decomposicao. Observa-se tambem que o histograma em vermelho apresenta
picos ligeiramente maiores do que os existentes no histograma em marrom e esta
forma se aproxima mais do histograma azul (que e o alvo).
5.5.6 Scatter Plots
Na Figura 5.30, esta representado o grafico de dispersao do valor absoluto da serie
esperada (no eixo das abscissas) e do valor absoluto do erro entre a serie esperada
e a serie predita pelo modelo NARMA, acrescida da tendencia e sazonalidade (no
eixo das ordenadas). Este grafico demonstra que para valores esperados maiores do
que 1500 (os picos da serie original), o valor absoluto do erro aumenta. Em outras
59
0 500 1000 1500 2000 2500Possible Values
0
20
40
60
80
100
Occu
renc
es
NN output, Decomposition and Truth HistogramsTruthReconstructed NN OutputTrend + 24h Seasonality
Figura 5.29: Histogramas da serie original (em azul), da serie predita pelo modelo
NARMA (em vermelho) e da serie reconstruıda apenas com a decomposicao (em
marrom)
60
0 500 1000 1500 2000 2500Absolute Value of Truth
0
200
400
600
800
1000
1200
1400Ab
solute Value
of E
rror
Scatter Plot: Truth x Error
Figura 5.30: Scatter plot do valor absoluto do erro versus valor absoluto do alvo
palavras, este grafico confirma a dificuldade que o modelo tem de prever os valores
muito altos.
O grafico de dispersao entre a serie residual esperada (no eixo das abscissas) e a
serie residual predita pelo modelo NARMA (no eixo das ordenadas) esta ilustrado na
Figura 5.31. Ao realizar uma regressao linear neste grafico, o coeficiente angular da
reta resultante foi 0,690 e a interceptacao com o eixo das ordenadas foi em 0,008. A
aparencia do grafico e estes valores da reta indicam que a predicao da serie residual
e o valor esperado sao altamente correlacionados e que a RNA foi capaz de prever o
valor desejado.
Na Figura 5.32 esta representado o grafico de dispersao da serie reconstruıda pre-
dita pelo modelo NARMA e o valor esperado da serie original, no eixo das ordenadas
e no eixo das abscissas, respectivamente. A regressao linear neste grafico resultou
em uma reta com coeficiente angular 0,785 e interceptacao com o eixo das ordenadas
em 150,123. Mais uma vez, nota-se que para os valores esperados grandes (maiores
que 1500), o valor da predicao apresenta um erro maior.
61
−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00Target
−0.75
−0.50
−0.25
0.00
0.25
0.50
0.75
1.00
NN Outpu
tScatter Plot: Target x NN Output
Figura 5.31: Scatter plot do alvo residual versus saıda residual da RNA
0 500 1000 1500 2000 2500Truth
0
500
1000
1500
2000
Pred
iction
Scatter Plot: Truth x Reconstructed NN Output
Figura 5.32: Scatter plot do alvo completo versus saıda reconstruıda da RNA
62
Figura 5.33: Scatter plots do alvo completo versus saıda reconstruıda da RNA (ver-
melho) e alvo completo versus saıda reconstruıda pela decomposicao (marrom)
Para fins comparativos, na Figura 5.33 esta representado o grafico exposto na
Figura 5.32 (agora, em vermelho), juntamente com o grafico de dispersao da serie
reconstruıda apenas com a decomposicao e a serie original (em marrom). E possıvel
observar que ambas as formas de predicao apresentam um grafico de dispersao si-
milar. O coeficiente angular da reta marrom e 0,795, com interceptacao no eixo das
ordenadas em 145,612, indicando uma forte similaridade com a reta vermelha, cujos
coeficientes ja foram apresentados no paragrafo anterior.
5.6 Conjunto de Validacao (Out-of-Sample)
Para comprovar a capacidade de generalizacao do modelo, alem de realizar o pro-
cesso de validacao cruzada, foi separada a ultima semana do conjunto de dados para
realizar a validacao do modelo. A Figura 5.34 apresenta o grafico comparativo entre
o alvo residual (em azul) e a serie predita pelo modelo NARMA (em vermelho), am-
bos desnormalizados. Ja na Figura 5.35, esta representada a serie original completa
63
Jul 17 Jul 1723 24 25 26 27 28 29 30
Data
−500
−250
0
250
500
750
1000Co
unt T
ran
actio
n
Re idual Serie TargetOutput of Neural Network
Figura 5.34: Saıda residual da RNA, para o conjunto de validacao, comparada ao
alvo
Jul 17 Jul 1723 24 25 26 27 28 29 30
Date
0
500
1000
1500
2000
Coun
t Tra
nsac
tions
TargetReconstructed Output of Neural Network
Figura 5.35: Saıda da RNA reconstruıda, para o conjunto de validacao, comparada
ao alvo
(em azul), e a serie predita pelo modelo NARMA acrescida da tendencia e da sazo-
nalidade diaria (em vermelho). E interessante ressaltar que o modelo demonstra sua
capacidade de generalizacao com um RMSE de 144,438 para a serie ja reconstruıda.
Outro fato interessante e que o RMSE para valores esperados maiores que 1500 e
igual a 594,182, enquanto que para valores menores que 1500, o RMSE e de 123,831.
Estes valores indicam que sao realmente estes picos maiores que 1500 que aumentam
o RMSE. Ademais, a acuracia de comportamento foi de 76,75%.
5.7 Divergencia KL
Na Figura 5.36, e possıvel observar a divergencia KL para o conjunto de validacao
do modelo NARMA. Em azul esta representada a distribuicao da serie esperada, em
vermelho esta a distribuicao da serie predita pelo modelo NARMA. Os valores de
64
Figura 5.36: Divergencia KL do modelo NARMA para o conjunto de validacao
divergencia KL, por bin, estao representados em preto e verde, correspondendo a
divergencia KL da predicao para o alvo e do alvo para a predicao, respectivamente.
No geral, os valores de divergencia sao baixos, vide a escala do grafico. Porem,
a respeito da divergencia a partir da saıda para o alvo, e possıvel notar um pico
significante em torno de zero e outro entre 500 e 1000 transacoes. Ja a divergencia
a partir do alvo para a predicao (em verde) apresenta um pico na regiao de 1000
transacoes.
Ja na Figura 5.37, esta representado o grafico que contem a divergencia KL entre a
predicao pela decomposicao e o valor esperado, ambos para o conjunto de validacao.
O esquema de cores segue a mesma representacao do esquema da Figura 5.36, porem
com a distribuicao em vermelho sendo correspondente a serie reconstruıda com a
decomposicao. Tambem e possıvel observar que os valores da divergencia sao baixos,
no geral. Ha um pico entre 500 e 1000 no valor da divergencia KL da predicao para
o alvo. Vale ressaltar tambem que o pico proximo a zero apresenta-se maior do que
o da Figura 5.36. Alem disso, nota-se dois picos: um entre zero e 500 transacoes
e outro na regiao em torno de 1000 transacoes, para o valor da divergencia KL do
65
Figura 5.37: Divergencia KL da decomposicao para o conjunto de validacao
alvo para a predicao.
Na Tabela 5.1 estao os valores totais da divergencia KL para os 4 casos mos-
trados nos graficos anteriores. Conclui-se que, por esta metrica, as duas maneiras
de predicao apresentam um desempenho similar, com a maior discrepancia relativa
sendo proxima de 5%. Isto significa que ambas sao capazes de gerar uma distribuicao
que pouco diverge da distribuicao da serie que se deseja obter.
Divergencia KL
Da predicao para o alvo Do alvo para a predicao
Modelo
NARMA
0,0204 0,0215
Apenas decom-
posicao
0,0205 0,0205
Tabela 5.1: Tabela comparativa dos valores de divergencia KL
66
5.8 Comparacao dos Resultados
Na Tabela 5.2, encontra-se um sumario dos valores de RMSE para os conjuntos
de teste e validacao. O menor RMSE de teste foi alcancado pela tecnica que uti-
liza somente decomposicao de serie temporais, seguido do modelo NARMA, com
saıda reconstruıda nao negativa, com uma discrepancia relativa de 6,7% entre os
resultados. O conjunto de validacao apresenta um RMSE relativamente baixo, de-
vido a menor ocorrencia de momentos com muitas transacoes (maior do que 1500
transacoes), no perıodo de validacao.
RMSE
Serie residual (teste) 0,211
Saıda da RNA reconstruıda
(teste)
226,498
Saıda da RNA reconstruıda nao
negativa (teste)
225,848
Somente Decomposicao (teste) 211,646
Saıda da RNA reconstruıda (va-
lidacao)
144,438
Tabela 5.2: Tabela comparativa dos valores de RMSE
67
Capıtulo 6
Conclusoes
Neste projeto de graduacao, foi implementado um modelo que combinou a decom-
posicao de series temporais com a nao linearidade do modelo NARMA para realizar
previsoes de uma serie temporal referente ao perfil transacional de um lojista. Para
comparar os resultados, foi realizada uma previsao utilizando a decomposicao de
series temporais, sem a combinacao do modelo NARMA, isto e, somente as estima-
tivas de tendencia e sazonalidade.
Foi possıvel constatar que o treinamento da RNA foi realizado corretamente e
apresenta resultados pertinentes, com boa aproximacao da serie residual esperada.
Ao reconstruir o resultado da predicao da serie residual, isto e, adicionar a tendencia
e sazonalidade estimadas, houve uma diminuicao na acuracia de comportamento.
Porem, ainda assim nota-se que a previsao apresenta bons resultados e acompa-
nha o formato da serie temporal original. Vale ressaltar que, ao tornar a saıda da
serie reconstruıda nao negativa, a melhora nas metricas foi muito pequena, porem
introduziu-se um sentido real para a predicao.
Ao comparar os resultados do modelo NARMA com a previsao utilizando-se ape-
nas a decomposicao de series temporais, nota-se que a decomposicao apresenta um
RMSE menor do que o modelo NARMA, com uma discrepancia relativa de ape-
nas 6,7%. Fica claro que a decomposicao tambem apresenta uma boa acuracia de
comportamento, 11,7% acima da acuracia de comportamento para a previsao nao
negativa do modelo NARMA. Ademais, os resultados da divergencia KL para as
duas previsoes se mostraram similares, indicando que ambas as tecnicas reconstroem
68
satisfatoriamente a distribuicao da serie original.
Uma explicacao para os resultados do modelo NARMA nao representarem uma
melhora na predicao da serie temporal pode estar relacionada ao fato da RNA uti-
lizada nao ter nocao de temporalidade entre as previsoes obtidas. Os resultados in-
dicam, tambem, que talvez este modelo nao apresente complexidade suficiente para
prever a proxima amostra da serie residual, com apenas a informacao transacional
dos ultimos 105 minutos (tempo correspondente a amostra atual e mais 6 amostra-
das passadas), de maneira mais precisa. Este problema apresenta uma relacao nao
linear e claramente complicada com o tempo. Isto pode indicar a necessidade de
utilizar outras variaveis adicionais para melhorar a previsao.
Para trabalhos futuros, sugere-se testar modelos que tenham esta nocao de tempo-
ralidade, como e o caso de um modelo RNN (do ingles, Recurrent Neural Network),
construıdo com LSTM (do ingles, Long Short-Term Memory). Outra possibilidade
seria compor diferentes modelos para os diversos valores da serie original, para ten-
tar lidar com a dificuldade de previsao para picos muito grandes e pouco frequen-
tes. Alem disso, introduzir novas variaveis externas como, por exemplo, ındices
economicos e existencia de feriados, tambem pode enriquecer e aprimorar a pre-
visao.
69
Referencias Bibliograficas
[1] WATSON, P., Ideas: A History of Thought and Invention, from Fire to Freud.
Harper Perennial, 2006.
[2] GAUSS, M., The Gift: The Form and Reason for Exchange in Archaic Societies.
Routledge, 1990.
[3] GRAEBER, D., Debt: The First 5000 Years. Melville House Publishing, 2011.
[4] KRAMER, S. N., History Begins at Sumer: Thirty-Nine Firsts in Recorded
History. University of Pennsylvania Press, 1988.
[5] JEVONS, W. S., Money and the Mechanism of Exchange. New York: D. Ap-
pleton and Co., 1875.
[6] O’SULLIVAN, A., SHEFFRIN, S. M., Economics: Principles in Action. Pren-
tice Hall, 2003.
[7] “Credit Card”, https://en.wikipedia.org/wiki/Credit card, Acessado em 20 de
Janeiro de 2018.
[8] World Payments Report 2017, Report, Capgemini e BNP Paribas, 2017.
[9] “Estatısticas de Pagamentos de Varejo e de Cartoes no Brasil”,
https://www.bcb.gov.br/?SPBADENDOS, 2017, Banco Central.
[10] BERNERS-LEE, T., Weaving the Web: The Original Design and Ultimate
Destiny of the World Wide. Harper, 1999.
[11] “Attention Shoppers: Internet Is Open”,
http://www.nytimes.com/1994/08/12/business/attention-shoppers-internet-
is-open.html, Acessado em 23 de Fevereiro de 2018.
70
[12] 89% dos internautas fizeram compras online no ultimo ano, aponta estudo do
SPC Brasil e CNDL, Report, SPC Brasil, CNDL e Meu Bolso Feliz, 2017.
[13] OLIVEIRA, F., “Adquirente, Operadora, Bandeira, Facilitadores. . . Quem
faz o que?”, http://www.concil.com.br/blog/conciliacaodecartao/adquirente-
operadora-bandeira-facilitadores/, 2016, Acessado em 23 de Janeiro de 2018.
[14] CHARGEBACKS911, “Difference Between ‘Acquiring Bank’ and ‘Issuing
Bank”’, https://chargebacks911.com/knowledge-base/difference-between-
acquiring-bank-and-issuing-bank/, Acessado em 20 de Janeiro de 2018.
[15] BOX, G. E. P., JENKINS, G. M., Time Series Analysis, Forecasting and Con-
trol. San Francisco : Holden-Day, 1976.
[16] GODFREY, L. B., GASHLER, M. S., “Neural Decomposition of Time-Series
Data”. In: 2017 IEEE International Conference on Systems, Man, and Cyber-
netics (SMC), pp. 2796–2801, Banff, Canada, 2017.
[17] ZOMAYA, A., ANDERSON, J., FOGEL, D., et al., “Nonconventional compu-
ting paradigms in the new millennium: a roundtable”, Computing in Science
& Engineering, v. 3, pp. 82–99, 2001.
[18] ZHANG, G., “Time series forecasting using a hybrid ARIMA and neural
network model”, Neurocomputing, v. 50, pp. 159 – 175, 2003.
[19] SUN, X., LIU, Y., CHAI, Y., et al., “A method for online retail sales estimation
based on semantic features of web pages”. In: Proceedings of the 2014 IEEE
18th International Conference on Computer Supported Cooperative Work in
Design (CSCWD), pp. 236–241, Maio 2014.
[20] KANEKO, Y., YADA, K., “A Deep Learning Approach for the Prediction of
Retail Store Sales”. In: 2016 IEEE 16th International Conference on Data
Mining Workshops (ICDMW), pp. 531–537, Dec 2016.
[21] MERINO, M., RAMIREZ-NAFARRATE, A., “Estimation of retail sales under
competitive location in Mexico”, Journal of Business Research, v. 69, n. 2,
pp. 445 – 451, 2016.
71
[22] WEI, D., GENG, P., YING, L., et al., “A prediction study on e-commerce
sales based on structure time series model and web search data”. In: The 26th
Chinese Control and Decision Conference (2014 CCDC), pp. 5346–5351, Maio
2014.
[23] NUNNARI, G., NUNNARI, V., “Forecasting Monthly Sales Retail Time Series:
A Case Study”. In: 2017 IEEE 19th Conference on Business Informatics (CBI),
v. 01, pp. 1–6, Julho 2017.
[24] CHATFIELD, C., The Analysis of Time Series: An Introduction. 6th ed. Chap-
man and Hall/CRC, 2003.
[25] TAK, Y.-S., “A Leaf Image Retrieval Scheme Based on Partial Dynamic Time
Warping and Two-Level Filtering”. In: 7th IEEE International Conference on
Computer and Information Technology, pp. 633–638, Fukushima, Japan, 2007.
[26] RATH, T. M., KANE, S., LEHMAN, A., et al., Indexing for a Digital Library
of George Washington’s Manuscripts: A Study of Word Matching Techniques,
Report, University of Massachusetts, 2002.
[27] CALOBA, L. P., Introducao ao Uso de Redes Neurais na Modelagem de Siste-
mas Dinamicos e Series Temporais. Natal, Livro de Minicursos do XIV Con-
gresso Brasileiro de Automatica, 2002.
[28] OPPENHEIM, A. V., SCHAFER, R. W., BUCK, J. R., Discrete-Time Signal
Processing. 2 ed. Prentice Hall, 1999.
[29] “International airline passengers: monthly totals in thousands. Jan 49 – Dec
60”, https://datamarket.com/data/set/22u3/international-airline-passengers-
monthly-totals-in-thousands-jan-49-dec-60#!ds=22u3&display=line, Acessado
em 16 de Marco de 2018.
[30] CHATFIELD, C., Time-Series Forecasting. Chapman and Hall/CRC, 2000.
[31] MORETTIN, P. A., TOLOI, C. M. C., Analise de Series Temporais. Sao Paulo,
Edgard Blucher, 2004.
72
[32] POMMERANZENBAUM, I. R., Redes Neurais Artificiais na Predicao das
Principais Series do Indice Ibovespa e suas Aplicacoes em Sistemas Automati-
zados de Negociacao. Dissertacao de M.Sc., COPPE/UFRJ, Marco 2014.
[33] MCCULLOCH, W. S., PITTS, W., A Logical Calculus of Ideas Immanent in
Nervous Activity. 115–133, Bulletin of Mathematical Biophysics, 1943.
[34] HAYKIN, S., Neural Networks, A Comprehensive Foundation. Prentice Hall,
1999.
[35] HEBB, D., The Organization of Behavior: A Neuropsychological Theory. John
Wiley & Sons, Inc., 1949.
[36] ROSENBLATT, F., “The Perceptron: A Probabilistic Model For Information
Storage And Organization In The Brain”, Psychological Review, v. 65, n. 6,
pp. 386–408, 1958.
[37] BISHOP, C. M., Pattern Recognition and Machine Learning. Springer, 2006.
[38] MINSKY, M., PAPERT, S., Perceptrons: An Introduction to Computational
Geometry. M.I.T. Press, 1969.
[39] CSAJI, B. C., Approximation with Artificial Neural Networks. Dissertacao de
M.Sc., Faculty of Sciences, Eotvos Lorand University, 2001.
[40] ZHANG, G., PATUWO, B. E., HU, M. Y., “Forecasting with artificial neural
networks: The state of the art”, International Journal of Forecasting, v. 14,
pp. 35–62, 1998.
[41] GRUBBS, F. E., “Procedures for Detecting Outlying Observations in Samples”,
Technometrics, v. 11, n. 1, pp. 1–21, 1969.
[42] WALD, A., Statistical Decision Functions. Wiley, 1950.
[43] GERSHENFELD, N., The Nature of Mathematical Modeling. Cambridge, Cam-
bridge University Press, 1999.
[44] CONNOR, J. T., ATLAS, L. E., MARTIN, D. R., “Recurrent Networks and
NARMA Modeling”. In: NIPS, 1991.
73
[45] MANONMANI, A., THYAGARAJAN, T., SUTHA, S., “ANN based modeling
and control of GHS for winter climate”. In: 2017 Trends in Industrial Measu-
rement and Automation (TIMA), pp. 1–7, Jan 2017.
[46] TRAJANOSKI, Z., WACH, P., GRUBER, R., et al., “NARMA modeling of
subcutaneous tissue glucose time-series using neural networks”. In: Proceedings
of the 15th Annual International Conference of the IEEE Engineering in Me-
dicine and Biology Societ, pp. 538–539, 1993.
[47] ZHAO, Q., YIN, H., CHEN, X., et al., “Performance optimization of the echo
state network for time series prediction and spoken digit recognition”. In: 2015
11th International Conference on Natural Computation (ICNC), pp. 502–506,
Aug 2015.
[48] CHANG, W. R., FERNANDEZ, B., “Improved CNC machining using NARMA
neural systems”. In: IEEE International Conference on Neural Networks, pp.
1865–1870 vol.3, 1993.
[49] “Keras: The Python Deep Learning library”, https://keras.io, acessado em 12
de marco de 2018.
[50] “scikit-learn: Machine Learning in Python”, http://scikit-learn.org, acessado
em 12 de marco de 2018.
[51] “StatsModel: Statistics in Python”, http://www.statsmodels.org, acessado em
22 de marco de 2018.
[52] “SciPy”, https://www.scipy.org, acessado em 22 de marco de 2018.
[53] KOHAVI, R., “A Study of Cross-validation and Bootstrap for Accuracy Esti-
mation and Model Selection”. In: Proceedings of the 14th International Joint
Conference on Artificial Intelligence - Volume 2, pp. 1137–1143, San Francisco,
CA, USA, 1995.
[54] KULLBACK, S., LEIBLER, R. A., “On Information and Sufficiency”, Ann.
Math. Statist., v. 22, n. 1, pp. 79–86, 03 1951.
74