Introducción
El análisis de series temporales es esencial para pronosticar y comprender las tendencias en datos secuenciales. En este tutorial, proporcionamos ejemplos comparativos utilizando Facebook Prophet, una herramienta popular para la predicción de series temporales, tanto en Python como en R. Aprenderá a preparar sus datos, ajustar un modelo y visualizar tendencias futuras, lo que le permitirá comparar flujos de trabajo y elegir el mejor enfoque para sus proyectos.
Uso de Facebook Prophet para la previsión de series temporales
A continuación, encontrará un panel con pestañas que muestra cómo crear y visualizar una previsión utilizando Prophet tanto en Python como en R.
PASO 1. Cargar los paquetes necesarios:
#| label: python-required-packages
import pandas as pd
import numpy as np
from prophet import Prophet
import matplotlib.pyplot as plt
PASO 2. Cargar y transformar datos:
#| label: python-load-data
# Cargar el conjunto de datos AirPassengers
= pd.read_csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Convierta los valores de tiempo a un formato de fecha adecuado
= 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
El conjunto de datos AirPassengers
contiene datos mensuales sobre el número de pasajeros.
PASO 3. Ajustar el modelo Prophet:
#| label: python-prophet-fit
# Ajustar el modelo Prophet
= Prophet()
model model.fit(df)
PASO 4. Realizar predicciones futuras:
#| label: python-make-forecast
# Crear un marco de datos para predicciones futuras (próximos 12 meses)
= model.make_future_dataframe(periods=12, freq='MS')
future = model.predict(future) forecast
PASO 5. Trazar la previsión:
#| label: python-plot-forecast
# Trazar la predicción
= model.plot(forecast)
fig plt.show()
PASO 6. Trazar los componentes de la previsión:
Esto mostrará la tendencia, la estacionalidad y los efectos de los días festivos en la previsión.
#| label: python-plot-components
# Trazar los componentes de la previsión
= model.plot_components(forecast)
fig plt.show()
PASO 1. Cargar los paquetes necesarios:
#| label: r-required-packages
library(prophet)
PASO 2. Cargar y transformar datos:
#| label: r-load-data
# Cargar el conjunto de datos AirPassengers
<- read.csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Convierta los valores de tiempo a un formato de fecha adecuado
<- 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
El conjunto de datos AirPassengers
contiene datos mensuales sobre el número de pasajeros.
PASO 3. Ajustar el modelo Prophet:
#| label: r-prophet-fit
# Ajustar el modelo Prophet
<- prophet(df) model
Prophet detectará la estacionalidad mensual a partir del conjunto de datos y desactivará la estacionalidad diaria y semanal de forma predeterminada.
Puede ejecutar prophet()
con weekly.seasonality = TRUE
o daily.seasonality = TRUE
para anular este comportamiento.
PASO 4. Realizar predicciones futuras:
El modelo se ha entrenado con datos históricos desde 1949 hasta 1960. Ahora generaremos previsiones para los próximos 12 meses (1961).
#| label: r-make-forecast
# Crear un marco de datos para predicciones futuras (próximos 12 meses)
<- make_future_dataframe(model, periods = 12, freq = "month")
future # Realizar predicciones
<- predict(model, future) forecast
PASO 5. Trazar la previsión:
#| label: r-plot-forecast
# Trazar la predicción
plot(model, forecast)
PASO 6. Trazar los componentes de la previsión:
Esto mostrará la tendencia, la estacionalidad y los efectos de los días festivos en la previsión.
#| label: r-plot-components
# Trazar los componentes de la previsión
prophet_plot_components(model, forecast)
Discusión
Preparación de datos
Ambos ejemplos utilizan el conjunto de datos AirPassengers, que contiene datos mensuales sobre el número de pasajeros.
Ajuste de modelos y previsión
Ambos ejemplos utilizan Prophet para ajustar un modelo y generar previsiones. Los flujos de trabajo son muy similares, lo que demuestra cómo la interoperabilidad entre lenguajes puede proporcionar flexibilidad a la hora de elegir las herramientas en función de sus necesidades específicas.
Visualización
Cada ejemplo concluye con una visualización de la previsión. En Python, utilizamos Matplotlib a través de la función de trazado integrada en Prophet, mientras que en R, la función de trazado de Prophet crea un resultado visual similar.
Recursos adicionales
Si le interesa explorar conjuntos de datos de series temporales de diferentes campos, le recomendamos que eche un vistazo a la biblioteca tsdl en GitHub. Proporciona una colección diversa de datos de series temporales, que pueden ser muy valiosos para probar y comparar modelos de predicción.
Conclusión
Al comparar estos ejemplos uno al lado del otro, puede ver que Facebook Prophet ofrece un enfoque coherente para la previsión de series temporales tanto en Python como en R. Esto le permite elegir el entorno que mejor se adapta a su flujo de trabajo general de ciencia de datos sin sacrificar la funcionalidad ni el rendimiento.
Lecturas adicionales
- Interoperabilidad entre Python y R
- Temas avanzados de R
- Flujo de trabajo de ciencia de datos: Python frente a R
Feliz programación y disfrute de la previsión de sus datos de series temporales con Prophet!
Explorar más artículos
Aquí hay más artículos de la misma categoría para ayudarte a profundizar en el tema.
Reutilización
Cómo citar
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Análisis de series temporales en Python y R},
date = {2024-02-12},
url = {https://www.datanovia.com/es/learn/programming/r/cross-programming/time-series-analysis-in-python-and-r.html},
langid = {es}
}