Se trabaja con el modelo Prophet propuesto por el equipo de Facebook
en 2018, cuenta con la siguiente estructura:
\[\begin{equation}
y(t) = g(t) + s(t) + h(t) + \epsilon_t
\end{equation}\] Aquí:
- \(g(t)\) es la función de tendencia
que modela los cambios no periódicos en el valor de la serie
temporal.
- \(s(t)\) representa los cambios
periódicos (por ejemplo, estacionalidad semanal y anual).
- \(h(t)\) representa los efectos de
los días festivos que ocurren en horarios potencialmente irregulares
durante uno o más días.
- El término de error \(\epsilon_t\)
representa cualquier cambio que no esté contemplado por el modelo.
En este documento se ilustra el ajuste de este modelo a una serie
temporal de frecuencia diaria del total de visitas a una página web, el
período de observación va desde enero de 2016 a septiembre de 2020, como
etapa de modelación, y para la etapa de prueba se tomará el período
hasta diciembre de 2020.
La componente estacional se modela comúnmente usando el modelo de
crecimiento logístico, que en su forma más básica es
\[\begin{equation}
g(t) = \frac{C}{1 + \exp(-k(t - m))},
\end{equation}\]
Aquí:
- \(C\) es la capacidad de carga
- \(k\) es la tasa de
crecimiento
- \(m\) es un parámetro de
desplazamiento.
Incorporamos cambios de tendencia en el modelo de crecimiento definiendo
explícitamente puntos de cambio donde se permite que la tasa de
crecimiento cambie. Supongamos que hay
\(S\) puntos de cambio en los tiempos
\(s_j\),
\(j = 1,
\ldots, S\). Definimos un vector de ajustes de tasa
\(\delta \in \mathbb{R}^S\), donde
\(\delta_j\) es el cambio en la tasa que
ocurre en el tiempo
\(s_j\). La tasa en
cualquier momento
\(t\) es entonces la
tasa base
\(k\), más todos los ajustes
hasta ese punto:
\(k + \sum_{j:t>s_j}
\delta_j\). Esto se representa de manera más clara definiendo un
vector
\(a(t) \in \{0, 1\}^S\) tal que:
\[\begin{equation}
a_j(t) =
\begin{cases}
1, & \text{si } t \geq s_j, \\
0, & \text{de lo contrario}.
\end{cases}
\end{equation}\]
La tasa en el tiempo
\(t\) es entonces
\(k + a(t)^\top \delta\). Cuando se
ajusta la tasa
\(k\), el parámetro de
desplazamiento
\(m\) también debe
ajustarse para conectar los extremos de los segmentos.
Prophet La corrección adecuada en el punto de cambio
\(j\) se calcula fácilmente con la siguiente
expresión:
\[\begin{equation}
\gamma_j = \left( s_j - m - \sum_{l<j} \gamma_l \right) \left( 1 -
\frac{k + \sum_{l<j} \delta_l}{k + \sum_{l \leq j} \delta_l} \right).
\end{equation}\]
El modelo de crecimiento logístico por tramos es entonces
\[\begin{equation}
g(t) = \frac{C(t)}{1 + \exp \left( - (k + a(t)^\top \delta)(t - (m +
a(t)^\top \gamma)) \right)}
\end{equation}\]
Para problemas de pronóstico que no muestran un crecimiento saturado, un
modelo con una tasa de crecimiento constante por tramos es una opción
parsimoniosa y útil. El modelo de tendencia en este caso es:
\[ g(t) = (k + a(t)^\top \delta)t + (m +
a(t)^\top \gamma), \]
donde: * \(k\) es la tasa de
crecimiento * \(\delta\) contiene los
ajustes de la tasa * \(m\) es el
parámetro de desplazamiento * \(\gamma_j\) se establece en \(-s_j \delta_j\)
Los puntos de cambio
\(s_j\) pueden ser
especificados por el analista usando fechas conocidas de lanzamientos de
productos y otros eventos que alteran el crecimiento, o pueden ser
seleccionados automáticamente a partir de un conjunto de candidatos. La
selección automática se puede realizar de manera natural con la
formulación en las ecuaciones anteriores (3) y (4) aplicando un prior
escaso sobre
\(\delta\).
A menudo, se especifica un gran número de puntos de cambio (por ejemplo,
uno por mes para un historial de varios años) y se usa el prior
\(\delta_j \sim \text{Laplace}(0, \tau)\). El
parámetro
\(\tau\) controla
directamente la flexibilidad del modelo para alterar su tasa. Es
importante destacar que un prior escaso sobre los ajustes
\(\delta\) no afecta la tasa de crecimiento
primaria
\(k\), de modo que, a medida
que
\(\tau\) tiende a 0, el ajuste se
reduce al crecimiento logístico o lineal estándar (no por tramos).
\[ s(t) = \sum_{n=1}^{N} \left( a_n \cos
\left( \frac{2\pi nt}{P} \right) + b_n \sin \left( \frac{2\pi nt}{P}
\right) \right) \]
Donde:
\(s(t)\) es la función de
estacionalidad en el tiempo \(t\)
\(N\) es el número de términos en
la serie de Fourier *
\(a_n\) y
\(b_n\) son coeficientes que determinan la
amplitud y la fase de las componentes de la serie de Fourier,
respectivamente. Estos coeficientes deben ser estimados a partir de los
datos.
\[s(t) = X(t)\beta\]
Donde:
- \(s(t)\) es la función de
estacionalidad en el tiempo \(t\) *
\(X(t)\) es la matriz de diseño que
contiene las características de la estacionalidad en el tiempo \(t\) \(\beta\) es el vector de parámetros que
determinan la relación entre las características de la estacionalidad y
la función de estacionalidad. \(\beta \sim
\text{Normal}(0, \sigma^2)\)
Para modelar los efectos de los días festivos, asignamos a cada día
festivo \(i\) un parámetro \(\kappa_i\), que representa el cambio
correspondiente en el pronóstico. Esto se hace de manera similar a la
estacionalidad, generando una matriz de regresores: \
\[ Z(t) = [1(t \in D_1), \ldots, 1(t \in
D_L)] \]
Donde \(D_i\) es el conjunto de días
del día festivo \(i\), y así:
\[ h(t) = Z(t)\kappa \]
Al igual que con la estacionalidad, se utiliza un prior \(\kappa \sim \text{Normal}(0, \nu^2)\).
Análisis exploratorio
Se observa un patrón estacional para la serie temporal,con un aumento
constante del número de visitas a través de los años, siento el período
mas notorio posterior al año 2020, año caracterizado por la pandemia.
En las festividades como lo es la navidad, se observan picos
considerables de disminución del número de visitas a la página, dónde
para los días de pascua y viernes negro se ve un aumento en estas
mismas, a continuación se ajusta el modelo Prophet
Ajuste del modelo Prophet
Serie estimada
Se observa el ajuste de la serie, este ajuste sigue las tendencias
generales de la serie, y no tiene a estancarse en estimaciones medias.
La flexibilidad del modelo permite modelar los puntos de cambio y el
cambio considerable observado en la etapa de pandemia.
Descomposición de la serie en su etapa estacional, efecto de las
festividades y puntos de cambio de la serie temporal del número de
visitas diarias a una página web

Se observa el comportamiento ascendente a través de los años de las
visitas, a nivel semanal, se ve que la mayor frecuencia de visitas se
encuentra en los días laborales (Lunes a Viernes). Se observa a nivel
mensual que la mayor cantidad de visitas se encuentran en el mes de
enero decayendo con una periodicidad hasta diciembre.
También se observa como los puntos de cambio de la serie, y en
general el efecto de las festividades permiten un excelente ajuste de la
serie.
Desempeño del modelo
|
|
ME
|
RMSE
|
MAE
|
MPE
|
MAPE
|
|
Test set
|
-148.3768
|
238.7698
|
189.2937
|
-9.183819
|
11.01229
|
El modelo cuenta con métricas bastante óptimas con un MAPE de
aproximadamente el 11% obteniendo así buenas predicciones en la etapa de
entrenamiento.