You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/br/7-TimeSeries/1-Introduction/README.md

13 KiB

Introdução à previsão de séries temporais

Resumo de séries temporais em um sketchnote

Sketchnote por Tomomi Imura

Nesta lição e na próxima, você aprenderá um pouco sobre previsão de séries temporais, uma parte interessante e valiosa do repertório de um cientista de ML que é um pouco menos conhecida do que outros tópicos. A previsão de séries temporais é como uma espécie de "bola de cristal": com base no desempenho passado de uma variável, como preço, você pode prever seu valor potencial futuro.

Introdução à previsão de séries temporais

🎥 Clique na imagem acima para assistir a um vídeo sobre previsão de séries temporais

Quiz pré-aula

É um campo útil e interessante com valor real para os negócios, dado sua aplicação direta em problemas de precificação, inventário e questões de cadeia de suprimentos. Embora técnicas de aprendizado profundo tenham começado a ser usadas para obter mais insights e prever melhor o desempenho futuro, a previsão de séries temporais continua sendo um campo amplamente informado por técnicas clássicas de ML.

O currículo útil de séries temporais da Penn State pode ser encontrado aqui

Introdução

Suponha que você gerencie uma rede de parquímetros inteligentes que fornecem dados sobre com que frequência eles são usados e por quanto tempo ao longo do tempo.

E se você pudesse prever, com base no desempenho passado do parquímetro, seu valor futuro de acordo com as leis de oferta e demanda?

Prever com precisão quando agir para alcançar seu objetivo é um desafio que pode ser abordado com previsão de séries temporais. Não deixaria as pessoas felizes serem cobradas mais caro em horários de pico quando estão procurando uma vaga, mas seria uma maneira eficaz de gerar receita para limpar as ruas!

Vamos explorar alguns dos tipos de algoritmos de séries temporais e começar um notebook para limpar e preparar alguns dados. Os dados que você analisará foram retirados da competição de previsão GEFCom2014. Eles consistem em 3 anos de valores horários de carga elétrica e temperatura entre 2012 e 2014. Dado os padrões históricos de carga elétrica e temperatura, você pode prever valores futuros de carga elétrica.

Neste exemplo, você aprenderá como prever um passo de tempo à frente, usando apenas dados históricos de carga. Antes de começar, no entanto, é útil entender o que está acontecendo nos bastidores.

Algumas definições

Ao encontrar o termo "séries temporais", você precisa entender seu uso em vários contextos diferentes.

🎓 Séries temporais

Em matemática, "uma série temporal é uma série de pontos de dados indexados (ou listados ou representados graficamente) em ordem temporal. Mais comumente, uma série temporal é uma sequência tomada em pontos sucessivos igualmente espaçados no tempo." Um exemplo de série temporal é o valor de fechamento diário do Dow Jones Industrial Average. O uso de gráficos de séries temporais e modelagem estatística é frequentemente encontrado em processamento de sinais, previsão do tempo, previsão de terremotos e outros campos onde eventos ocorrem e pontos de dados podem ser plotados ao longo do tempo.

🎓 Análise de séries temporais

A análise de séries temporais é a análise dos dados de séries temporais mencionados acima. Os dados de séries temporais podem assumir formas distintas, incluindo "séries temporais interrompidas", que detectam padrões na evolução de uma série temporal antes e depois de um evento interruptor. O tipo de análise necessário para a série temporal depende da natureza dos dados. Os dados de séries temporais podem assumir a forma de séries de números ou caracteres.

A análise a ser realizada utiliza uma variedade de métodos, incluindo domínio de frequência e domínio de tempo, linear e não linear, e mais. Saiba mais sobre as muitas maneiras de analisar esse tipo de dado.

🎓 Previsão de séries temporais

A previsão de séries temporais é o uso de um modelo para prever valores futuros com base em padrões exibidos por dados previamente coletados conforme ocorreram no passado. Embora seja possível usar modelos de regressão para explorar dados de séries temporais, com índices de tempo como variáveis x em um gráfico, esses dados são melhor analisados usando tipos especiais de modelos.

Os dados de séries temporais são uma lista de observações ordenadas, diferente de dados que podem ser analisados por regressão linear. O mais comum é o ARIMA, um acrônimo que significa "Autoregressive Integrated Moving Average" (Média Móvel Integrada Autoregressiva).

Modelos ARIMA "relacionam o valor presente de uma série a valores passados e erros de previsão passados." Eles são mais apropriados para analisar dados no domínio do tempo, onde os dados são ordenados ao longo do tempo.

Existem vários tipos de modelos ARIMA, sobre os quais você pode aprender aqui e que você abordará na próxima lição.

Na próxima lição, você construirá um modelo ARIMA usando Séries Temporais Univariadas, que se concentra em uma variável que muda seu valor ao longo do tempo. Um exemplo desse tipo de dado é este conjunto de dados que registra a concentração mensal de CO2 no Observatório Mauna Loa:

CO2 YearMonth Year Month
330.62 1975.04 1975 1
331.40 1975.13 1975 2
331.87 1975.21 1975 3
333.18 1975.29 1975 4
333.92 1975.38 1975 5
333.43 1975.46 1975 6
331.85 1975.54 1975 7
330.01 1975.63 1975 8
328.51 1975.71 1975 9
328.41 1975.79 1975 10
329.25 1975.88 1975 11
330.97 1975.96 1975 12

Identifique a variável que muda ao longo do tempo neste conjunto de dados.

Características dos dados de séries temporais a considerar

Ao observar dados de séries temporais, você pode notar que eles possuem certas características que você precisa levar em conta e mitigar para entender melhor seus padrões. Se você considerar os dados de séries temporais como potencialmente fornecendo um "sinal" que deseja analisar, essas características podem ser vistas como "ruído". Muitas vezes, será necessário reduzir esse "ruído" compensando algumas dessas características usando técnicas estatísticas.

Aqui estão alguns conceitos que você deve conhecer para trabalhar com séries temporais:

🎓 Tendências

Tendências são definidas como aumentos e diminuições mensuráveis ao longo do tempo. Leia mais. No contexto de séries temporais, trata-se de como usar e, se necessário, remover tendências de sua série temporal.

🎓 Sazonalidade

Sazonalidade é definida como flutuações periódicas, como picos de vendas durante feriados, por exemplo. Veja como diferentes tipos de gráficos exibem sazonalidade nos dados.

🎓 Outliers

Outliers estão distantes da variância padrão dos dados.

🎓 Ciclo de longo prazo

Independentemente da sazonalidade, os dados podem exibir um ciclo de longo prazo, como uma recessão econômica que dura mais de um ano.

🎓 Variância constante

Ao longo do tempo, alguns dados exibem flutuações constantes, como o uso de energia durante o dia e a noite.

🎓 Mudanças abruptas

Os dados podem exibir uma mudança abrupta que pode precisar de análise adicional. O fechamento repentino de negócios devido à COVID, por exemplo, causou mudanças nos dados.

Aqui está um exemplo de gráfico de séries temporais mostrando o gasto diário de moeda em jogos ao longo de alguns anos. Você consegue identificar alguma das características listadas acima nesses dados?

Gasto de moeda em jogos

Exercício - começando com dados de uso de energia

Vamos começar criando um modelo de séries temporais para prever o uso futuro de energia com base no uso passado.

Os dados neste exemplo foram retirados da competição de previsão GEFCom2014. Eles consistem em 3 anos de valores horários de carga elétrica e temperatura entre 2012 e 2014.

Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli e Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, julho-setembro, 2016.

  1. Na pasta working desta lição, abra o arquivo notebook.ipynb. Comece adicionando bibliotecas que ajudarão você a carregar e visualizar os dados.

    import os
    import matplotlib.pyplot as plt
    from common.utils import load_data
    %matplotlib inline
    

    Observe que você está usando os arquivos da pasta common incluída, que configuram seu ambiente e lidam com o download dos dados.

  2. Em seguida, examine os dados como um dataframe chamando load_data() e head():

    data_dir = './data'
    energy = load_data(data_dir)[['load']]
    energy.head()
    

    Você pode ver que há duas colunas representando data e carga:

    load
    2012-01-01 00:00:00 2698.0
    2012-01-01 01:00:00 2558.0
    2012-01-01 02:00:00 2444.0
    2012-01-01 03:00:00 2402.0
    2012-01-01 04:00:00 2403.0
  3. Agora, plote os dados chamando plot():

    energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
    plt.xlabel('timestamp', fontsize=12)
    plt.ylabel('load', fontsize=12)
    plt.show()
    

    gráfico de energia

  4. Agora, plote a primeira semana de julho de 2014, fornecendo-a como entrada para o energy no padrão [de data]:[até data]:

    energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
    plt.xlabel('timestamp', fontsize=12)
    plt.ylabel('load', fontsize=12)
    plt.show()
    

    julho

    Um gráfico bonito! Observe esses gráficos e veja se consegue determinar alguma das características listadas acima. O que podemos deduzir ao visualizar os dados?

Na próxima lição, você criará um modelo ARIMA para gerar algumas previsões.


🚀Desafio

Faça uma lista de todas as indústrias e áreas de estudo que você consegue pensar que se beneficiariam da previsão de séries temporais. Você consegue pensar em uma aplicação dessas técnicas nas artes? Em Econometria? Ecologia? Varejo? Indústria? Finanças? Onde mais?

Quiz pós-aula

Revisão e Autoestudo

Embora não os abordemos aqui, redes neurais às vezes são usadas para aprimorar métodos clássicos de previsão de séries temporais. Leia mais sobre elas neste artigo

Tarefa

Visualize mais séries temporais


Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.