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
= pd.read_csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Converta os valores de tempo para um formato de data adequado
= pd.DataFrame({
df '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
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
= Prophet()
model model.fit(df)
PASSO 4. Fazer previsões futuras:
#| label: python-make-forecast
# Crie um dataframe para previsões futuras (próximos 12 meses)
= model.make_future_dataframe(periods=12, freq='MS')
future = model.predict(future) forecast
PASSO 5. Plotando a previsão:
#| label: python-plot-forecast
# Plotando a previsão
= model.plot(forecast)
fig plt.show()
PASSO 6. Plotar componentes da previsão:
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
= model.plot_components(forecast)
fig plt.show()
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
<- read.csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Converta os valores de tempo para um formato de data adequado
<- data.frame(
df 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
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
<- prophet(df) model
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)
<- make_future_dataframe(model, periods = 12, freq = "month")
future # Fazendo previsões
<- predict(model, future) forecast
PASSO 5. Plotando a previsão:
#| label: r-plot-forecast
# Plotando a previsão
plot(model, forecast)
PASSO 6. Plotar componentes da previsão:
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)
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
- Interoperabilidade entre Python e R
- Tópicos avançados de R
- Fluxo de trabalho de ciência de dados: Python vs. R
Boa programação e aproveite a previsão de seus dados de séries temporais com o Prophet!
Explore mais artigos
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@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}
}