Clique para saber mais sobre o autor Maarit Widmann.
Uma aplicação completa de análise de série temporal cobre as etapas de um Ciência dados ciclo desde o acesso até a transformação, modelagem, avaliação e implantação de dados de série temporal. No entanto, para dados de séries temporais, as tarefas específicas nestas etapas diferem em comparação com dados transversais. Por exemplo, os dados transversais são coletados como um instantâneo de um objeto em um determinado momento, enquanto os dados de séries temporais são coletados pela observação do mesmo objeto durante um período de tempo. Os padrões regulares em dados de séries temporais têm sua terminologia específica e determinam o pré-processamento necessário antes de passar para a modelagem de séries temporais. As séries temporais podem ser modeladas com muitos tipos de modelos, mas modelos específicos de séries temporais, como um modelo ARIMA, utilizam a estrutura temporal entre as observações.
Neste artigo, apresentamos as tarefas mais comuns na jornada de construção de um aplicativo de série temporal. Por fim, colocamos a teoria em prática construindo um exemplo de aplicação na Plataforma Analytics.
Acessando Séries Temporais
As séries temporais têm várias fontes e aplicações: dados diários de vendas para previsão de demanda, dados macroeconômicos anuais para planejamento político de longo prazo, dados de sensores de um relógio inteligente para análise de uma sessão de treino e muito mais. Todas estas séries temporais diferem, por exemplo, na sua granularidade, regularidade e limpeza: Podemos ter a certeza de que temos um valor do PIB do nosso país para este ano e também para os próximos 10 anos, mas não podemos garantir que o O sensor do nosso relógio inteligente funciona de forma estável em qualquer exercício e em qualquer temperatura. Também pode acontecer que os dados de séries temporais não estejam disponíveis em intervalos regulares, mas só possam ser recolhidos a partir de pontos de eventos aleatórios, tais como infecções de doenças ou visitas espontâneas de clientes. O que todos esses tipos de dados de séries temporais têm em comum é que eles são coletados da mesma fonte ao longo do tempo.
Regularizando e limpando séries temporais
Assim que tivermos os dados da série temporal, a próxima etapa é torná-los igualmente espaçados com uma granularidade adequada, contínuos e limpos. As tarefas necessárias dependem da forma original dos dados e também do nosso analítica propósito. Por exemplo, se estivermos planejando uma promoção de um produto durante uma semana, poderemos estar interessados em dados mais granulares do que se quisermos obter uma visão geral das vendas de algum produto.
Classificação
As séries temporais precisam ser classificadas por tempo. Ao particionar dados em conjuntos de treinamento e teste, lembre-se de preservar a estrutura temporal entre os registros, obtendo dados de cima/para baixo para teste/treinamento. Se seus dados contiverem mais de um registro por carimbo de data/hora, será necessário agregá-los por carimbo de data/hora. Por exemplo, quando você tem vários pedidos por dia e está interessado nas vendas diárias, é necessário somar as vendas de cada dia. Além disso, se você estiver interessado na série temporal em outra granularidade diferente da que você tem atualmente nos dados (por exemplo, vendas mensais em vez de vendas diárias), você poderá agregar ainda mais os dados na granularidade preferida.
Valores em falta
Se alguns carimbos de data/hora estiverem faltando, será necessário apresentá-los à série temporal para torná-la igualmente espaçada. Às vezes, os registros ausentes fazem parte da dinâmica da série temporal (por exemplo, um mercado de ações fecha na sexta-feira e abre na segunda-feira).
Quando você introduz os carimbos de data/hora ausentes nos dados, os valores correspondentes obviamente estão ausentes. Você pode imputar esses valores ausentes, por exemplo, por interpolação linear ou valores de média móvel. Lembre-se, porém, de que a melhor técnica para imputar valores faltantes depende da dinâmica regular dos dados. Por exemplo, se você inspecionar a sazonalidade semanal em dados diários e estiver faltando um valor em um sábado, o valor do último sábado será provavelmente o melhor substituto. Se os valores faltantes não faltarem aleatoriamente, como os preços de fechamento do mercado de ações nos finais de semana, você poderá substituí-los por um valor fixo, que neste caso seria 0. Por outro lado, se os valores omissos forem aleatórios e ocorrerem suficientemente longe no passado, você poderá usar os dados após o valor omisso e ignorar os dados mais antigos.
Padrões Irregulares
Uma boa maneira de lidar com flutuações rápidas e valores discrepantes é suavizar os dados. Várias técnicas podem ser utilizadas, como média móvel e suavização exponencial. Além disso, cortar os valores que ficam fora dos bigodes de um box plot suaviza os dados. Lembre-se de que uma forte sazonalidade nos dados pode levar a um box plot generalizado e, então, é melhor usar um box plot condicional para detectar valores discrepantes.
No entanto, às vezes a série temporal mostra apenas um fenômeno muito irregular! Nesse caso, você pode tentar tornar a série temporal mais regular extraindo um subconjunto dela, por exemplo, considerando apenas as vendas de um produto em vez das vendas de todo o supermercado, ou agrupando os dados.
Explorando e transformando séries temporais
Neste ponto, temos nossos dados de série temporal no formato adequado para explorá-los visual e numericamente. Os diferentes gráficos e estatísticas revelam padrões e relações temporais de longo e curto prazo nas séries temporais que podemos usar para compreender melhor a sua dinâmica e prever o seu desenvolvimento futuro.
Exploração Visual de Séries Temporais
O gráfico básico para explorar séries temporais é o gráfico de linhas (Figura 3) que mostra uma direção possível, flutuações regulares e irregulares, valores discrepantes, lacunas ou pontos de inflexão na série temporal. Se você observar um padrão regular em sua série temporal, como sazonalidade anual nas vendas de bebidas, poderá inspecionar cada ciclo sazonal (ano) separadamente em um gráfico sazonal (Figura 3). No gráfico sazonal você pode ver facilmente, por exemplo, se julho foi um mês de vendas mais forte este ano do que no ano passado, ou se as vendas mensais estão aumentando ano a ano.
Se você estiver interessado no que acontece dentro das estações, como qual é a mediana das vendas nos meses de verão e quanto e em que direção as vendas variam a cada mês, você pode inspecionar esses tipos de dinâmica em um box plot condicional (Figura 3). Ainda outro gráfico útil para explorar séries temporais é o gráfico de defasagem (Figura 3). O gráfico de atraso mostra a relação entre os valores atuais e os valores passados, por exemplo, vendas hoje e vendas na semana anterior.
Decomposição Clássica de Séries Temporais
A decomposição clássica, ou seja, a decomposição da série temporal em tendências, sazonalidades e resíduos, fornece uma boa referência para previsão. A parte restante da série temporal, o resíduo, deve ser estacionário, e pode ser previsto por um modelo ARIMA, por exemplo. Lembre-se, porém, que se a série residual não for estacionária, algumas transformações adicionais poderão ser necessárias, como diferenciação de primeira ordem ou transformação logarítmica da série temporal original.
Em primeiro lugar, se a série temporal mostra uma direção, uma tendência, a série temporal pode ser prejudicada, por exemplo, ajustando um modelo de regressão através dos dados, ou calculando um valor de média móvel.
Em segundo lugar, se a série temporal mostrar uma flutuação regular – uma sazonalidade – a série temporal pode ser ajustada em função disso. Você pode encontrar a defasagem onde ocorre a maior sazonalidade no gráfico de autocorrelação da série temporal. Por exemplo, se você observar um pico na defasagem 7 e tiver dados diários, os dados terão sazonalidade semanal. A sazonalidade pode ser ajustada diferenciando os dados no intervalo onde ocorre o maior pico. Caso queira ajustar a segunda sazonalidade nos dados, pode fazê-lo repetindo o procedimento para a série temporal ajustada (diferenciada).
Finalmente, quando você atingir uma série temporal estacionária que está pronta para ser modelada, por exemplo, por um modelo ARIMA, você poderá fazer uma verificação final com, por exemplo, Teste Ljung-box para estacionariedade.
Modelagem e avaliação de séries temporais
Agora passamos a modelar a parte residual da série temporal que contém sua dinâmica irregular. Podemos fazer isso com modelos ARIMA, aprendizado de máquina modelos, redes neurais e muitas variações deles. Freqüentemente modelamos a parte residual da série temporal por meio desses modelos, porque ela é estacionária. Porém, a decomposição das séries temporais nem sempre é necessária, pois alguns modelos, como por exemplo o modelo sazonal ARIMA, também funcionam para modelar séries temporais não estacionárias.
A seguir coletamos algumas propriedades dessas diferentes técnicas de modelagem, suas semelhanças e diferenças, para que você possa escolher a melhor para seu caso de uso. Lembre-se também que é útil treinar vários modelos e até construir um conjunto deles!
Modelos ARIMA
ARIMA O modelo (Média Móvel Integrada Autoregressiva) é um modelo de regressão linear entre os valores atuais e passados (parte AR), e também entre os erros de previsão atuais e passados (parte MA). Se o modelo tiver uma parte I diferente de zero, os dados serão diferenciados para torná-lo estacionário. Os modelos ARIMA básicos assumem que a série temporal é estacionária e que as séries temporais estacionárias não têm padrões previsíveis a longo prazo. O declínio da precisão nas previsões de longo prazo pode ser visto no aumento dos intervalos de confiança das previsões. Ter mais dados nem sempre é melhor para treinar modelos ARIMA: Grandes conjuntos de dados podem tornar demorada a estimativa dos parâmetros do modelo ARIMA, bem como exagerar a diferença entre o processo verdadeiro e o processo do modelo.
Modelos de aprendizado de máquina
Os modelos de aprendizado de máquina usam os valores defasados como colunas preditoras e ignoram a estrutura temporal entre a coluna de destino e as colunas preditoras. Os modelos de aprendizado de máquina também podem identificar padrões de longo prazo e pontos de inflexão nos dados, desde que sejam fornecidos dados suficientes nos dados de treinamento para estabelecer esses padrões. Em geral, quanto mais irregularidades os dados mostram, mais dados são necessários para treinar o modelo. Ao aplicar um modelo de aprendizado de máquina, é recomendável modelar o resíduo. Caso contrário, você pode construir um modelo que seja mais complicado que o modelo de decomposição clássico, mas que na verdade não aprenda nada de novo!
Dicas sobre seleção de modelos
Em primeiro lugar, alguns fenómenos são difíceis de prever e, nesse caso, muitas vezes faz sentido optar por um modelo mais simples e não investir recursos na modelação de algo que não pode ser previsto com precisão.
Em segundo lugar, o desempenho do modelo não é o único critério. Se decisões importantes forem baseadas nos resultados do modelo, a sua interpretabilidade poderá ser mais importante do que um desempenho ligeiramente melhor. Dito isto, uma rede neural pode perder contra um modelo de decomposição clássico simples, embora preveja um pouco melhor.
Em terceiro lugar, adicionar variáveis explicativas ao seu modelo pode melhorar a precisão da previsão. Contudo, num tal modelo, as variáveis explicativas também precisam de ser previstas, e a crescente complexidade do modelo nem sempre compensa a melhor precisão. Às vezes, estimativas aproximadas são suficientes para apoiar as decisões: se os valores de envio forem calculados em dezenas e centenas, então a demanda prevista também não precisa ter uma granularidade maior.
Avaliação de modelo
Após treinar um modelo, o próximo passo é avaliá-lo. Para previsão dentro da amostra, o conjunto de teste é o próprio conjunto de treinamento, portanto, o processo do modelo é ajustado aos dados que foram usados para treinar o modelo. Para previsão fora da amostra, o conjunto de teste é posterior ao conjunto de treinamento no tempo.
Uma métrica de erro recomendada para avaliar um modelo de série temporal é o erro percentual absoluto médio (MAPE), pois fornece o erro em escala universal, em percentual do valor real. No entanto, se o valor verdadeiro for zero, esta métrica não será definida, e também outras métricas de erro, como a raiz do erro quadrático médio (REQM), vai fazer. O que muitas vezes é recomendado, porém, é NÃO usar R-quadrado. A métrica R-quadrado não se ajusta ao contexto da análise de séries temporais porque o foco está na previsão da variabilidade sistemática futura da coluna alvo, em vez de modelar toda a variabilidade no passado.
Previsão e reconstrução de séries temporais
Estamos quase lá! A última etapa é prever os valores futuros e reconstruir o sinal.
Previsão Dinâmica
Se você tiver um modelo que não pode fornecer previsões precisas no longo prazo, a implantação dinâmica geralmente melhora a precisão da previsão fora da amostra. Na implantação dinâmica, apenas um ponto no futuro é previsto por vez, e os dados passados são atualizados por esse valor de previsão para gerar a próxima previsão (Figura 5).
Restaurando Tendências e Sazonalidades
Finalmente, se decompormos as séries temporais antes da previsão, precisamos restaurar a tendência e/ou sazonalidades nas previsões. Se ajustarmos a sazonalidade diferenciando os dados, começamos a reconstruir o sinal adicionando valores na defasagem onde ocorre a sazonalidade. Por exemplo, se tivéssemos dados diários y onde aplicássemos a diferenciação sazonal no desfasamento 7 (sazonalidade semanal), restaurar esta sazonalidade exigiria o seguinte cálculo para os valores de previsão yt+1, yt+2..., yt+h :
onde té o último ponto no tempo nos dados de treinamento, e h é o horizonte de previsão.
Para restaurar a segunda sazonalidade, repetiríamos o passo descrito acima para a série temporal restaurada. Se quiséssemos restaurar o componente de tendência à série temporal, aplicaríamos o modelo de regressão que representa a tendência à série temporal restaurada.
Aplicação completa de série temporal na plataforma de análise
Por fim, vamos dar uma olhada em como colocar essas etapas em prática usando nossa plataforma de análise. O fluxo de trabalho Acessando séries temporais de transformação e modelagem (disponível no Hub) na Figura 6 mostra as etapas desde o acesso até a limpeza, exploração visual, decomposição e modelagem de séries temporais. Para algumas dessas tarefas, usamos componentes de série temporal que encapsulam fluxos de trabalho como funcionalidades específicas para séries temporais: agregar os dados na granularidade selecionada, realizar a decomposição clássica e muito mais.
Neste exemplo, usamos o Amostra – Superloja dados fornecidos por Quadro. Na nossa análise focamos nos pedidos de todos os produtos de 2014 a 2017 – ao todo 9994 registros. Iniciamos o pré-processamento remodelando os dados em dados de série temporal, calculando o total de vendas por dia. Agora só temos um valor por dia, mas faltam alguns dias porque nenhum pedido foi enviado nesses dias. Portanto, introduzimos esses dias na série temporal e substituímos os valores de vendas ausentes por um valor fixo 0. Depois disso, agregamos os dados no nível mensal e consideramos as vendas médias de cada mês em uma análise mais aprofundada.
Para exploração visual, também agregamos os dados a nível anual e descobrimos que há um ponto de viragem no início do ano de 2015, como mostra o gráfico de linha à direita na Figura 7. O gráfico de linhas à esquerda mostra a sazonalidade anual nos dados: há dois picos regulares no final de cada ano e um pico mais baixo no início de cada ano. Também detectamos sazonalidade anual nos dados, como mostra o grande pico na defasagem 12 no gráfico ACF à esquerda. Decompomos a série temporal em tendência, sazonalidade e resíduo, e esses componentes são mostrados no gráfico de linhas no meio da Figura 7. O gráfico ACF à direita não mostra autocorrelação significativa na série residual.
A seguir, modelamos a série residual das vendas médias mensais com um modelo ARIMA. Depois de diferenciar na defasagem 12, o comprimento da série temporal é de 36 observações. Procuramos o melhor modelo com o componente Auto ARIMA Learner com ordem máxima 4 para as peças AR e MA e ordem máxima 1 para a parte I. O modelo de melhor desempenho baseado em Critério de informação de Akaike é ARIMA (0, 1, 4), e o MAPE resultante com base nas previsões da amostra é 1.153.
Finalmente, avaliamos a precisão da previsão fora da amostra do modelo. O fluxo de trabalho Previsão e reconstrução de séries temporais (disponível no Hub) na Figura 8 mostra como prever as vendas diárias em 2017 com base nos dados mensais dos anos de 2014 a 2016 (24 observações) e no modelo ARIMA vencedor (0,1,4) usando a implantação dinâmica abordagem. Depois disso, reconstruímos o sinal, neste caso, restauramos a tendência e a sazonalidade anual para os valores previstos (valores médios de vendas de 12 meses). Comparamos os valores reais e previstos e obtemos um MAPE de 0.336.
Sumário
As séries temporais, sejam dados de sensores que mostram o comportamento de um objeto minúsculo nanossegundo após nanossegundo, dados macroeconômicos do século 20 ou algo intermediário, possuem técnicas analíticas específicas que se aplicam às etapas de acesso, manipulação e modelagem.
Neste artigo, apresentamos os fundamentos das técnicas de análise para séries temporais que ajudam você a começar a trabalhar com dados de séries temporais.
Referências
[1] Chambers, John C., Satinder K. Mullick e Donald D. Smith. Como escolher a técnica correta de previsão. Universidade de Harvard, Escola de Pós-Graduação em Administração de Empresas, 1971.
[2] Hyndman, Rob J. e George Athanasopoulos. Previsão: Princípios e Prática. OTextos, 2018.
Fonte: https://www.dataversity.net/building-a-time-series-análise-application/
- absoluto
- Adicional
- análise
- analítica
- Aplicação
- aplicações
- AR
- artigo
- auto
- fundamentos básicos
- referência
- MELHOR
- Bebidas
- corpo
- Caixa
- construir
- Prédio
- negócio
- Limpeza
- Coluna
- comum
- componente
- confiança
- países
- Atual
- dados,
- dia
- Demanda
- Desenvolvimento
- Doença
- estimativas
- Evento
- Exercício
- exploração
- Figura
- Finalmente
- Primeiro nome
- caber
- Foco
- Sexta-feira
- futuro
- PIB
- Geral
- George
- Bom estado, com sinais de uso
- pós-graduação
- Manipulação
- Harvard
- Harvard University
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- Centenas
- identificar
- imagem
- Infecções
- INFORMAÇÕES
- IT
- Julho
- grande
- conduzir
- APRENDER
- aprendiz
- aprendizagem
- Nível
- Line
- longo
- aprendizado de máquina
- principal
- mercado
- Métrica
- modelo
- modelagem
- Segunda-feira
- dados mensais
- mês
- mover
- rede
- redes
- Neural
- rede neural
- redes neurais
- abre
- ordem
- ordens
- Outros
- padrão
- atuação
- planejamento
- plataforma
- predição
- Produto
- Produtos
- promoção
- registros
- regressão
- Relacionamentos
- Recursos
- Resultados
- vendas
- Escala
- Escola
- selecionado
- sentido
- Série
- conjunto
- Envios
- simples
- pequeno
- smart
- Instantâneo
- So
- começo
- começado
- estatística
- estoque
- mercado de ações
- apresentado
- verão
- ajuda
- Quadro
- Target
- teste
- O Básico
- O Futuro
- tempo
- topo
- Training
- Transformação
- Universal
- universidade
- valor
- Assistir
- semana
- semanal
- O que é a
- Wikipedia
- dentro
- Atividades:
- de gestão de documentos
- exercício
- Equivalente há
- ano
- anos
- zero