Análise de séries temporais em Python e R

Tutorial lado a lado usando o Prophet

Compare fluxos de trabalho de previsão de séries temporais usando o Facebook Prophet em Python e R. Este tutorial fornece exemplos lado a lado para ajudar você a entender como carregar dados, ajustar modelos e visualizar previsões em cada ambiente.

Programação
Autor
Afiliação
Data de Publicação

12 de fevereiro de 2024

Data de Modificação

29 de abril de 2025

Palavras-chave

análise de séries temporais Python R, Tutorial do Prophet, Python Prophet, R Prophet, previsão em Python, Previsão em R

Introdução

A análise de séries temporais é essencial para prever e compreender tendências em dados sequenciais. Neste tutorial, fornecemos exemplos lado a lado usando Facebook Prophet—uma ferramenta popular para previsão de séries temporais—em Python e R. Você aprenderá como preparar seus dados, ajustar um modelo e visualizar tendências futuras, permitindo comparar fluxos de trabalho e escolher a melhor abordagem para seus projetos.



Usando o Facebook Prophet para previsão de séries temporais

Abaixo, você encontrará um painel com guias que demonstra como construir e visualizar uma previsão usando Prophet em Python e R.

PASSO 1. Carregar pacotes necessários:

#| label: python-required-packages
import pandas as pd
import numpy as np
from prophet import Prophet
import matplotlib.pyplot as plt

PASSO 2. Carregar e transformar dados:

#| label: python-load-data
# Carregar o conjunto de dados AirPassengers
air_passengers = pd.read_csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")

# Converta os valores de tempo para um formato de data adequado
df = pd.DataFrame({
    'ds': pd.to_datetime(air_passengers['Month']), 
    'y': air_passengers['Passengers']
})
df.head()
          ds    y
0 1949-01-01  112
1 1949-02-01  118
2 1949-03-01  132
3 1949-04-01  129
4 1949-05-01  121
Nota

O conjunto de dados AirPassengers contém dados mensais sobre o número de passageiros.

PASSO 3. Ajustar o modelo Prophet:

#| label: python-prophet-fit
# Ajustar o modelo Prophet
model = Prophet()
model.fit(df)

PASSO 4. Fazer previsões futuras:

#| label: python-make-forecast
# Crie um dataframe para previsões futuras (próximos 12 meses)
future = model.make_future_dataframe(periods=12, freq='MS')
forecast = model.predict(future)

PASSO 5. Plotando a previsão:

#| label: python-plot-forecast
# Plotando a previsão
fig = model.plot(forecast)
plt.show()

Previsão Python Prophet

PASSO 6. Plotar componentes da previsão:

Nota

Isso mostrará a tendência, a sazonalidade e os efeitos dos feriados na previsão.

#| label: python-plot-components
# Plote os componentes da previsão
fig = model.plot_components(forecast)
plt.show()

Componentes da previsão do Python Prophet

PASSO 1. Carregar pacotes necessários:

#| label: r-required-packages
library(prophet)

PASSO 2. Carregar e transformar dados:

#| label: r-load-data
# Carregar o conjunto de dados AirPassengers
air_passengers <- read.csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")

# Converta os valores de tempo para um formato de data adequado
df <- data.frame(
  ds = as.Date(air_passengers$Month), 
  y = as.numeric(air_passengers$Passengers)
  )
head(df)
          ds   y
1 1949-01-01 112
2 1949-02-01 118
3 1949-03-01 132
4 1949-04-01 129
5 1949-05-01 121
6 1949-06-01 135
Nota

O conjunto de dados AirPassengers contém dados mensais sobre o número de passageiros.

PASSO 3. Ajustar o modelo Prophet:

#| label: r-prophet-fit
# Ajustar o modelo Prophet
model <- prophet(df)
Nota

O Prophet detectará a sazonalidade mensal a partir do conjunto de dados e desativará a sazonalidade diária e semanal por padrão.

Você pode executar prophet() com weekly.seasonality = TRUE ou daily.seasonality = TRUE para substituir esse comportamento.

PASSO 4. Fazer previsões futuras:

O modelo foi treinado com dados históricos de 1949 a 1960. Agora vamos gerar previsões para os próximos 12 meses (1961).

#| label: r-make-forecast
# Crie um dataframe para previsões futuras (próximos 12 meses)
future <- make_future_dataframe(model, periods = 12, freq = "month")
# Fazendo previsões
forecast <- predict(model, future)

PASSO 5. Plotando a previsão:

#| label: r-plot-forecast
# Plotando a previsão
plot(model, forecast)

Previsão do R Prophet

PASSO 6. Plotar componentes da previsão:

Nota

Isso mostrará a tendência, a sazonalidade e os efeitos dos feriados na previsão.

#| label: r-plot-components
# Plote os componentes da previsão
prophet_plot_components(model, forecast)

Componentes da previsão do R Prophet

Discussão

Preparação de dados

Ambos os exemplos utilizaram o conjunto de dados AirPassengers, que contém dados mensais sobre o número de passageiros.

Ajuste de modelo e previsão

Ambos os exemplos usam o Prophet para ajustar um modelo e gerar previsões. Os fluxos de trabalho são notavelmente semelhantes, o que demonstra como a interoperabilidade entre linguagens pode oferecer flexibilidade na escolha de ferramentas com base em suas necessidades específicas.

Visualização

Cada exemplo termina com uma visualização da previsão. Em Python, usamos Matplotlib por meio da função de plotagem integrada do Prophet, enquanto em R, a função plot do Prophet cria uma saída visual semelhante.

Recursos adicionais

Para aqueles interessados em explorar conjuntos de dados de séries temporais de diferentes campos, considere conferir a biblioteca tsdl no GitHub. Ele fornece uma coleção diversificada de dados de séries temporais, que podem ser inestimáveis para testar e comparar modelos de previsão.

Conclusão

Ao comparar esses exemplos lado a lado, você pode ver que o Facebook Prophet oferece uma abordagem consistente para previsão de séries temporais em Python e R. Isso permite que você escolha o ambiente que melhor se adapta ao seu fluxo de trabalho geral de ciência de dados sem sacrificar a funcionalidade ou o desempenho.

Leitura adicional

Boa programação e aproveite a previsão de seus dados de séries temporais com o Prophet!

Explore mais artigos

Nota

Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.

De volta ao topo

Reuso

Citação

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Análise de séries temporais em Python e R},
  date = {2024-02-12},
  url = {https://www.datanovia.com/pt/learn/programming/r/cross-programming/time-series-analysis-in-python-and-r.html},
  langid = {pt}
}
Por favor, cite este trabalho como:
Kassambara, Alboukadel. 2024. “Análise de séries temporais em Python e R.” February 12, 2024. https://www.datanovia.com/pt/learn/programming/r/cross-programming/time-series-analysis-in-python-and-r.html.