Ir al contenido principal

Profeta de Facebook: Un enfoque moderno para la predicción de series temporales

Comprende cómo Facebook Prophet modela tendencias, estacionalidad y eventos especiales para obtener previsiones precisas e interpretables.
Actualizado 5 nov 2025  · 10 min de lectura

Las empresas dependen de la predicción de tendencias futuras para tomar decisiones estratégicas, como pronosticar las ventas de productos o evaluar la variabilidad de la demanda. Una forma de realizar predicciones eficaces es el pronóstico de series temporales. Un principio fundamental del pronóstico de series temporales es su dependencia de los valores de datos históricos para predecir resultados futuros. Esto requiere prestar atención a los datos, ya que los datos prácticos suelen ser ruidosos o incompletos, por lo que son difíciles de predecir.

Aunque existen muchas herramientas disponibles para la previsión de series temporales, Facebook Prophet está diseñado específicamente para hacer frente a las complejidades del mundo real, que van desde las tendencias no lineales y la estacionalidad hasta el impacto de eventos especiales, como días festivos y campañas de marketing o picos de tráfico.  Si no estás familiarizado con el pronóstico de series temporales, te recomiendo que realices nuestro curso Análisis de series temporales en Python y/o nuestro curso Pronóstico en R.

¿Qué es Facebook Prophet?

Prophet es una biblioteca de predicción de código abierto desarrollada por el equipo de ciencia de datos central de Facebook. Está disponible tanto en Python como en R. Parte del motivo por el que a los analistas y científicos de datos les gusta utilizarlo es que automatiza muchos de los pasos rutinarios de los métodos de previsión tradicionales. Con tal flexibilidad, ayuda a los usuarios a producir rápidamente previsiones interpretables y de calidad.

Marco de modelado central de Facebook Prophet

El enfoque de modelización de Facebook Prophet es estructurado, peroflexible. Descompone una serie temporal en cuatro componentes ces clave, a saber, tendencia, estacionalidad, días festivos y error. Ese tercer componente, al que llamé «las vacaciones», no es tan habitual. La descomposición clásica y STL especifican tres partes: tendencia, estacionalidad y error.

Al aclarar cómo las tendencias, la estacionalidad y los días festivos contribuyen al pronóstico final, la descomposición ayuda a validar el razonamiento del modelo mientras intentamos tomar decisiones informadas.

Descomposición de series temporales

Prophet utiliza un modelo aditivo en el que la serie temporal y(t) se expresa como:

Ecuación de descomposición de series temporales de Facebook Prophet

¿Dónde? 

  • La tendencia (g(t)) se refiere al crecimiento o descenso a largo plazo.

  • La estacionalidad (s(t)) incluye patrones recurrentes, como fluctuaciones semanales, mensuales o anuales.

  • Los efectos festivos (h(t)) tienen en cuenta acontecimientos irregulares pero predecibles, como el Black Friday o las fiestas nacionales.

  • El error (et) es el ruido residual que no se explica por los demás componentes.

Además de proporcionar interpretabilidad al mostrar qué factores impulsan las predicciones, también automatiza la mayor parte del proceso de predicción de series temporales, como la detección de estacionalidad y el tratamiento de valores perdidos.

Al encargarse de estas complejas operaciones de preprocesamiento, Prophet reduce la necesidad de contar con amplios conocimientos estadísticos, como suele ser necesario en los métodos estadísticos convencionales. ARIMA, por ejemplo, requiere que se mantengan las hipótesis de estacionariedad y no tiene en cuenta oficialmente los factores externos, mientras que Prophet modela explícitamente la estacionalidad y el impacto de los días festivos, por lo que se considera más fácil para la previsión empresarial.

Especificación del componente de tendencia

Prophet tiene dos modelos de tendencias:

  1. El modelo de crecimiento logístico resulta útil cuando una serie temporal se satura a su capacidad máxima, de forma similar a lo que ocurre con la adopción de una nueva aplicación por parte de los usuarios.
  2. El modelo lineal por tramos divide la tendencia en segmentos con puntos de cambio, lo que facilita modelar cambios repentinos en el crecimiento.

Modelización de la estacionalidad

La estacionalidad se modela utilizando una serie de Fourier que permite funciones periódicas suaves en datos de series temporales. Tiene dos formas principales de comportamiento estacional:

  • La estacionalidad aditiva es necesaria cuando las variaciones estacionales mantienen una magnitud constante a lo largo del tiempo.
  • La estacionalidad multiplicativa es adecuada cuando las fluctuaciones estacionales crecen con la tendencia, como por ejemplo, cuando el volumen de ventas aumenta con el crecimiento general del mercado.

Además, los usuarios también pueden definir estacionalidades personalizadas para representar patrones únicos y específicos del dominio, por ejemplo, promociones trimestrales.

Integración de días festivos y eventos

Prophet también ofrece la posibilidad de incorporar tanto días festivos predefinidos como listas arbitrarias de eventos. Esto resulta especialmente ventajoso a la hora de modelar ciclos económicos, festivos culturales o eventos puntuales, como lanzamientos de productos. También se pueden añadir acontecimientos inesperados, como la COVID-19, como regresores adicionales para actualizar dinámicamente las previsiones. El modelado explícito de este tipo de eventos mejora la precisión y proporciona información sobre el impacto de las fechas especiales en las tendencias subyacentes.

Manejo del ruido y los valores atípicos

Los datos del mundo real suelen contener ruido y valores atípicos, lo que puede dar lugar a predicciones distorsionadas del modelo. Prophet cuenta con funciones de pérdida robustas y componentes de tendencia no paramétricos que hacen que la predicción sea más resistente a los valores atípicos en los datos.

Para mejorar aún más la estabilidad de las previsiones, resulta útil analizar los gráficos residuales y preprocesar los datos mediante winsorización o eliminación de anomalías. Estos pasos garantizan que el modelo aprenda tendencias reales, en lugar de ruido aleatorio.

Cuándo utilizar Facebook Prophet (y cuándo no hacerlo)

Al igual que la mayoría de los modelos y técnicas de machine learning, Prophet no es una solución válida para todos los casos. Entender en qué aspectos destaca y en cuáles no es fundamental para utilizarlo de forma eficaz.

Puntos fuertes y escenarios ideales

Prophet es especialmente eficaz cuando:

  • Cuando los datos tienen una clara estacionalidad diaria, semanal o anual.
  • Los conjuntos de datos están incompletos y requieren un tratamiento automatizado de los valores perdidos y los valores atípicos.
  • Los usuarios necesitan un análisis exploratorio rápido y el desarrollo inicial del modelo.

Su simplicidad lo hace accesible a usuarios con conocimientos estadísticos limitados, mientras que su interpretabilidad ayuda a los analistas y científicos de datos a comunicar los resultados de manera eficaz a las partes interesadas sin conocimientos técnicos.

Limitaciones y posibles dificultades

Prophet puede ser menos adecuado en los siguientes casos:

  • Datos muy volátiles o no estacionales, en los que no hay patrones periódicos regulares.
  • Previsiones a largo plazo cuando las tendencias son impredecibles.
  • Las tendencias no lineales no se captan con los modelos lineales por tramos ni con los modelos logísticos.

Una regla de oro al utilizar Prophet, o cualquier modelo de predicción, es evitar adoptarlo a ciegas. Sin una validación adecuada, los modelos pueden generar fácilmente previsiones excesivamente optimistas o engañosas, como también se ha observado en varios debates comunitarios y en fallos de previsión muy sonados.

Trabajar con Prophet en Python

Paso 1: Importar bibliotecas

Primero, carga todos los paquetes Python necesarios:

  • pandas para la manipulación de datos

  • prophet construir el modelo de predicción

  • matplotlib para visualización

  • sklearn.metrics – para calcular el MAPE, la métrica de error

import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_percentage_error

Paso 2:  Cargar el conjunto de datos

A continuación, leemos tu archivo CSV que contiene los precios históricos de los futuros del oro. Aquí tienes unenlace al conjunto de datos de Kaggle que estoy utilizando.

file_path = "future-gc00-daily-prices.csv"
gold_ts = pd.read_csv(file_path)

Paso 3: Limpiar los datos

Ahora hay que limpiar los datos. Esto significa que:

  • Eliminar las comas de las columnas numéricas y convertirlas a números flotantes.

  • Convierte la columna « Date » de formato de cadena a fecha y hora.

Esto garantiza que Prophet pueda comprender y ordenar correctamente las fechas.

for col in ["Open", "High", "Low", "Close"]:
    gold_ts[col] = gold_ts[col].str.replace(",", "").astype(float)
gold_ts["Date"] = pd.to_datetime(gold_ts["Date"], format="%m/%d/%Y")

Paso 4: Ordena los datos por fecha.

Ordenamos los datos por orden cronológico. Este es un paso importante que puede pasarse por alto.

gold_ts = gold_ts.sort_values("Date")

Paso 5: Prepara los datos para Prophet.

También tenemos que preparar los datos para Prophet, que espera que las columnas de entrada se denominen:

  • ds → fecha

  • y → valor a pronosticar (en este caso, el precio Close )

gold_ts = gold_ts[["Date", "Close"]].rename(columns={"Date": "ds", "Close": "y"})

Paso 6: Dividir en conjuntos de entrenamiento y prueba

Ahora dividimos los datos en versiones de entrenamiento y prueba. 

  • Conserva la mayor parte de los datos para el entrenamiento.
  • Reserva las últimas 180 filas (o el 10 % si son menos) para comprobar la precisión del modelo.
test_size = min(180, len(gold_ts) // 10)
train = gold_ts.iloc[:-test_size]
test = gold_ts.iloc[-test_size:]

Paso 7: Ajusta el modelo Prophet.

Entrena a Prophet con los datos históricos con los componentes estacionales diarios y anuales habilitados.

model = Prophet(daily_seasonality=True, yearly_seasonality=True)
model.fit(train)

Paso 8: Previsión de valores futuros

Hacemos predicciones para tantos días como en el conjunto de pruebas.

La previsión contiene columnas como « yhat » (previsión), « yhat_lower » (previsión de la temperatura máxima) y « yhat_upper » (previsión de la temperatura mínima).

future = model.make_future_dataframe(periods=test_size)
forecast = model.predict(future)

Paso 9: Alinear las predicciones con los resultados reales.

Combina los precios de cierre reales con las predicciones del modelo en fechas coincidentes para compararlos directamente.

merged = pd.merge(test, forecast[["ds", "yhat"]], on="ds", how="inner")

Paso 10: Calcular MAPE

Ahora medimos la precisión de la previsión. Si no hay solapamiento en las fechas, te avisa en lugar de bloquearse.

if merged.empty:
    print("No overlapping dates between forecast and test set.")
else:
    mape = mean_absolute_percentage_error(merged["y"], merged["yhat"]) * 100
    print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")

Aquí, el error porcentual absoluto medio (MAPE): 5,83 %

Ecuación MAPE

Paso 11: Hacer gráfico de la previsión

Visualizamos la previsión, los intervalos de confianza y el historial real.

fig1 = model.plot(forecast)
plt.title("Gold Futures (GC00) - Close Price Forecast")
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.show()

Resultado de la predicción de Facebook Prophet

Paso 12: Hacer gráfico de los componentes estacionales

Es útil mostrar cómo los patrones de tendencia, diarios y de estacionalidad anual contribuyen a la previsión.

fig2 = model.plot_components(forecast)
plt.show()

Descomposición estacional de Facebook Prophet

Paso 13: Revisar muestras de pronósticos

Muestra los últimos valores previstos y sus rangos de incertidumbre.

print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(10))

Valores previstos de muestra:

             ds         yhat   yhat_lower   yhat_upper
3714 2023-11-09  1834.568081  1743.127873  1922.791205
3715 2023-11-10  1833.323500  1749.265678  1937.246093
3716 2023-11-11  1832.818196  1740.941278  1921.772611
3717 2023-11-12  1832.370884  1745.285047  1925.012684
3718 2023-11-13  1832.644350  1736.792708  1919.057042
3719 2023-11-14  1832.017761  1736.229502  1929.786669
3720 2023-11-15  1831.650906  1743.190077  1924.851936
3721 2023-11-16  1831.566521  1738.181184  1933.026740
3722 2023-11-17  1830.427713  1736.038529  1919.505155
3723 2023-11-18  1830.029816  1737.022754  1922.118728

Validación y pruebas de Facebook Prophet

Metodología de validación

Se requiere una validación cruzada de series temporales para simular escenarios de predicción del mundo real. Es importante evaluar el rendimiento del modelo en múltiples conjuntos de validación consecutivos. No solo ayuda a evitar el sesgo de anticipación, sino que también proporciona generalizabilidad a datos futuros no vistos.

Algunas de las métricas de evaluación estándar incluyen:

  • El error absoluto medio (MAE) mide la magnitud media de los errores, sin tener en cuenta la dirección.
  • El error porcentual absoluto medio (MAPE) mide la diferencia porcentual absoluta media. Se puede interpretar fácilmente en diferentes escalas. Este es el que vimos en nuestro ejemplo de Python.

Análisis comparativo

En comparación con ARIMA o LSTM, Prophet destaca en:

  • Gestión de la estacionalidad irregular y los efectos de las vacaciones
  • Demostrando solidez ante datos faltantes, valores atípicos e irregularidades comerciales.

Sin embargo, Prophet puede tener un rendimiento inferior en escenarios que impliquen patrones altamente no lineales o conjuntos de datos con una estacionalidad débil. 

Aplicaciones prácticas y limitaciones

Casos prácticos reales

Prophet se ha adoptado ampliamente en diferentes sectores para casos de uso como:

  • Previsión de ventas minoristas, evaluación de la demanda y gestión del inventario.
  • Predicción del tráfico web para comprender la participación de los usuarios
  • Previsión de la demanda energética para equilibrar el suministro y el consumo de manera eficiente.

A pesar de sus beneficios, ha habido casos en los que los patrones históricos han fallado debido a perturbaciones inesperadas, como ocurrió durante la pandemia. 

Limitaciones de escalabilidad

Prophet puede manejar conjuntos de datos de tamaño moderado, lo que resulta adecuado para la mayoría de las tareas de previsión empresarial y operativa. Sin embargo, su uso con conjuntos de datos extremadamente grandes o series temporales de alta frecuencia resulta computacionalmente costoso debido al marco de modelización bayesiano subyacente. Para paliar esto, se sugiere pronosticar múltiples series temporales en paralelo. Otro enfoque práctico consiste en agregar o reducir la resolución de los datos. Reduce los costes de memoria y tiempo de ejecución sin perder valiosos patrones temporales.

Limitaciones clave

Prophet asume una única variable objetivo y modela su tendencia utilizando curvas de crecimiento lineales por tramos o logísticas. Tales supuestos pueden limitar su flexibilidad para problemas multivariantes o no dominados por tendencias. Por lo tanto, los usuarios deben añadir conocimientos sobre el dominio a las previsiones de Prophet, junto con una validación externa, para garantizar su fiabilidad.

Fracasos y críticas en el mundo real

Los fallos de previsión de gran repercusión, como el colapso del mercado inmobiliario de Zillow, ponen de relieve los riesgos de confiar excesivamente en el software de previsión automatizado. Confiar demasiado en los resultados de los modelos sin someterlos a revisión humana puede dar lugar a errores costosos. Por lo tanto, se recomienda realizar una validación exhaustiva y una planificación de escenarios a la hora de interpretar los resultados de las previsiones.

No dudes en cuestionar todos los modelos y tendencias. Fomenta una cultura que promueva el pensamiento crítico y permita a los equipos cuestionar el statu quo. He visto cómo estos equipos crean soluciones de previsión sólidas de forma sistemática. 

Por último, recomiendo encarecidamente adoptar una mentalidad de «confiar pero verificar» y añadir una capa adicional de conocimiento del dominio para realizar una comprobación de la validez de los resultados. 

Trayectoria de desarrollo futuro

Prophet sigue evolucionando gracias a la investigación y las contribuciones de la comunidad. Las mejoras continuas en Prophet incluyen:

  • Soporte multivariante
  • Mayor escalabilidad para grandes conjuntos de datos.
  • Extensiones impulsadas por la comunidad

La investigación activa implica integrar nuevos métodos estadísticos y mejorar el rendimiento en conjuntos de datos complejos y de alta frecuencia.

Conclusión

Facebook Prophet es una potente herramienta para la previsión de series temporales que ofrece automatización, interpretabilidad y flexibilidad. Funciona bien para la previsión exploratoria en los negocios y otros ámbitos con una fuerte estacionalidad o eventos especiales.

Pero eso no lo convierte en una solución plug-and-play. Para realizar predicciones fiables, los usuarios deben garantizar una validación diligente, un ajuste de los parámetros y un conocimiento del dominio. Al equilibrar la automatización de Prophet con el criterio humano reflexivo, los analistas pueden desarrollar conocimientos prácticos y evitar errores comunes.

Para un aprendizaje práctico, echa un vistazo a nuestros cursos y programas de habilidades:


Vidhi Chugh's photo
Author
Vidhi Chugh
LinkedIn

Transformadora de Datos y Estratega de IA | Conferenciante Internacional | Ética de la IA | Inventora | Mujer Logradora Global | Autora

Preguntas frecuentes

¿Para qué se utiliza Facebook Prophet?

Facebook Prophet se utiliza para realizar previsiones de series temporales, lo que ayuda a predecir tendencias, estacionalidad y efectos de eventos en datos como ventas, demanda o tráfico web.

¿Cómo gestiona Prophet los días festivos y los eventos especiales?

Prophet permite añadir eventos predefinidos o personalizados al modelo, lo que tiene en cuenta los picos o caídas irregulares en la serie temporal.

¿Por qué Prophet es tan popular para la previsión empresarial?

Prophet es automatizado, interpretable y resistente frente a datos faltantes y valores atípicos, lo que lo hace ideal para realizar previsiones rápidas y fiables.

¿Cuándo se debe evitar usar Facebook Prophet?

Se puede evitar el uso de Prophet en el caso de datos muy volátiles o no estacionales, o cuando las tendencias son demasiado impredecibles.

¿Cuáles son las principales ventajas de Prophet con respecto a ARIMA?

A diferencia de ARIMA, Prophet no requiere una estacionariedad estricta, maneja datos faltantes y detecta automáticamente los puntos de cambio.

Temas
Relacionado

blog

Todo lo que sabemos sobre GPT-5

Descubre cómo GPT-5 evolucionará hasta convertirse en un sistema unificado con funciones avanzadas, cuyo lanzamiento está previsto para el verano de 2025, basándose en la última hoja de ruta de OpenAI y en la historia de GPT.
Josep Ferrer's photo

Josep Ferrer

8 min

blog

Las 6 mejores herramientas de Business Intelligence para 2024 que debes conocer

Descubra cómo la inteligencia empresarial es esencial para el éxito de las empresas y las principales herramientas de BI que lo hacen posible.
Joleen Bothma's photo

Joleen Bothma

12 min

blog

Las 10 principales conferencias sobre análisis de datos para 2024

Descubra las conferencias y eventos sobre analítica más populares programados para 2024.
Javier Canales Luna's photo

Javier Canales Luna

7 min

blog

Cómo ser analista de datos en 2024: 5 pasos para iniciar tu carrera profesional

Aprende a convertirte en analista de datos y descubre todo lo que necesitas saber para lanzar tu carrera, incluidas las habilidades que necesitas y cómo aprenderlas.
Elena Kosourova's photo

Elena Kosourova

15 min

blog

Los 15 mejores libros sobre machine learning para leer en 2023

El machine learning es uno de los temas más candentes de la ciencia de datos. Aquí tienes una lista de 15 libros para introducirte en este campo o convertirte en un experto
Javier Canales Luna's photo

Javier Canales Luna

8 min

Tutorial

Predicciones bursátiles con LSTM en Python

Descubra las redes de memoria larga a corto plazo (LSTM) en Python y cómo puede utilizarlas para hacer predicciones bursátiles.
Thushan Ganegedara's photo

Thushan Ganegedara

Ver másVer más