Análisis de series temporales usando Facebook Prophet en programación R

El análisis de series temporales es una forma de analizar y aprender el comportamiento de los conjuntos de datos durante un período. Además, ayuda a aprender el comportamiento del conjunto de datos al trazar el objeto de la serie temporal en el gráfico. En la programación R , se puede realizar fácilmente usando ts()una función que toma el vector de datos y lo convierte en un objeto de serie temporal como se especifica en los parámetros de la función.

Facebook Prophet es una herramienta desarrollada por Facebook para pronosticar objetos o datos de series temporales. Ayuda a las empresas a conocer el comportamiento de sus productos al pronosticar precios, ventas o el clima. La herramienta Facebook Prophet se basa en un modelo descomponible, es decir, tendencia, estacionalidad y días festivos que ayuda a hacer modelos predictivos más precisos con estas restricciones. Es mucho mejor que el modelo ARIMA ya que ayuda a sintonizar y ajustar los parámetros de entrada.

Ecuación matemática del modelo de profeta

 y(t) = g(t) + s(t) + h(t) + e(t)

donde,
y(t)
se refiere al pronóstico
g(t) se refiere a la tendencia
s(t) se refiere a la estacionalidad
h(t) se refiere a las vacaciones para el pronóstico
e(t) se refiere al término de error durante el pronóstico

Algunos términos importantes utilizados en el modelo de profeta de Facebook

  • Tendencia
    Una tendencia es un cambio en el desarrollo ya sea en dirección de incremento o decremento. Matemáticamente,

    g(t)=\frac{C}{1+e^{-k(t-m)}}

    donde,
    C
    indica la capacidad de carga
    k indica el crecimiento
    m indica el parámetro de compensación

  • Estacionalidad La
    estacionalidad es una característica de un objeto de serie temporal que ocurre en un momento/temporada en particular y cambia la tendencia.
  • Vacaciones
    Las vacaciones son un período de tiempo que cambia mucho para el negocio. Puede generar ganancias o pérdidas dependiendo del negocio.

Implementación en R

En el siguiente ejemplo, descarguemos el conjunto de datos AirPassengers y realicemos el pronóstico del conjunto de datos utilizando el modelo Facebook Prophet. Después de ejecutar todo el código, el modelo mostrará los valores pronosticados con la tendencia y estacionalidad del negocio.

Paso 1: Instalación de la biblioteca necesaria

# Install the library
install.packages("prophet")

Paso 2: Cargue la biblioteca requerida

# Load the library
library(prophet)

Paso 3: Descargue el conjunto de datos AirPassengers desde aquí

# Dataset
ap <- read.csv("example_air_passengers.csv")

Paso 4: Llame a la función profeta para que se ajuste al modelo

m <- prophet(ap)

Paso 5: Haz predicciones

# Predictions
future <- make_future_dataframe(m,
                    periods = 365)
  
# Print predictions
cat("\nPredictions:\n")
tail(future)

Producción:

Predictions:
        ds
504 1961-11-26
505 1961-11-27
506 1961-11-28
507 1961-11-29
508 1961-11-30
509 1961-12-01

Paso 6: Pronosticar datos usando predicciones

# Forecast
forecast <- predict(m, future)
tail(forecast[c('ds', 'yhat', 
    'yhat_lower', 'yhat_upper')])
      ds         yhat    yhat_lower yhat_upper
504 1961-11-26 497.2056   468.6301   525.7918
505 1961-11-27 496.0703   467.8579   525.6728
506 1961-11-28 493.1698   465.5788   522.9650
507 1961-11-29 496.0497   469.2889   524.6313
508 1961-11-30 492.8452   463.7279   520.4519
509 1961-12-01 493.6417   466.3496   522.9887

Paso 7: Trace el pronóstico

# Output to be present
# As PNG file
png(file = "facebookprophetGFG.png")
  
# Plot
plot(m, forecast)
  
# Saving the file
dev.off()

Salida:
output-graph
el gráfico anterior muestra los valores pronosticados de AirPassengers, donde los puntos negros se refieren a los datos originales, la línea azul oscuro se refiere al valor pronosticado (yhat) y el área azul claro indica el valor yhat_upper y yhat_lower.

Paso 8: Trace la tendencia, la estacionalidad semanal y anual

# Output to be present 
# As PNG file
png(file = "facebookprophettrendGFG.png")
  
# Plot
prophet_plot_components(m, forecast)
  
# Saving the file
dev.off()

Salida:
output-graph
El gráfico anterior muestra la tendencia del conjunto de datos de que los pasajeros aéreos han aumentado durante un período de tiempo determinado. En el segundo gráfico, muestra la estacionalidad del conjunto de datos durante un período de tiempo, es decir, anualmente, y significa que los pasajeros aéreos fueron máximos entre los meses de junio a agosto.

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *