Big Data Analytics - Analyse des séries chronologiques

Les séries chronologiques sont une séquence d'observations de variables catégorielles ou numériques indexées par une date ou un horodatage. Un exemple clair de données de séries chronologiques est la série chronologique du cours d'une action. Dans le tableau suivant, nous pouvons voir la structure de base des données de séries chronologiques. Dans ce cas, les observations sont enregistrées toutes les heures.

Horodatage Prix ​​de l'action
11/10/2015 09:00:00 100
11/10/2015 10:00:00 110
11/10/2015 11:00:00 105
11/10/2015 12:00:00 90
11/10/2015 13:00:00 120

Normalement, la première étape de l'analyse des séries chronologiques consiste à tracer la série, cela se fait normalement avec un graphique linéaire.

L'application la plus courante de l'analyse des séries chronologiques consiste à prévoir les valeurs futures d'une valeur numérique à l'aide de la structure temporelle des données. Cela signifie que les observations disponibles sont utilisées pour prédire les valeurs du futur.

L'ordre temporel des données implique que les méthodes de régression traditionnelles ne sont pas utiles. Afin de construire des prévisions robustes, nous avons besoin de modèles qui prennent en compte l'ordre temporel des données.

Le modèle le plus largement utilisé pour l'analyse des séries chronologiques est appelé Autoregressive Moving Average(ARMA). Le modèle se compose de deux parties, unautoregressive (AR) et un moving average(MA) partie. Le modèle est alors généralement appelé le modèle ARMA (p, q)p est l'ordre de la partie autorégressive et q est l'ordre de la partie moyenne mobile.

Modèle autorégressif

L' AR (p) se lit comme un modèle autorégressif d'ordre p. Mathématiquement, il s'écrit -

$$ X_t = c + \ sum_ {i = 1} ^ {P} \ phi_i X_ {t - i} + \ varepsilon_ {t} $$

où {φ 1 ,…, φ p } sont des paramètres à estimer, c est une constante et la variable aléatoire ε t représente le bruit blanc. Certaines contraintes sont nécessaires sur les valeurs des paramètres pour que le modèle reste stationnaire.

Moyenne mobile

La notation MA (q) fait référence au modèle de moyenne mobile d'ordre q -

$$ X_t = \ mu + \ varepsilon_t + \ sum_ {i = 1} ^ {q} \ theta_i \ varepsilon_ {t - i} $$

où les θ 1 , ..., θ q sont les paramètres du modèle, μ est l'espérance de X t , et les ε t , ε t - 1 , ... sont des termes d'erreur de bruit blanc.

Moyenne mobile autorégressive

Le modèle ARMA (p, q) combine p termes autorégressifs et q termes de moyenne mobile. Mathématiquement, le modèle est exprimé avec la formule suivante -

$$ X_t = c + \ varepsilon_t + \ sum_ {i = 1} ^ {P} \ phi_iX_ {t - 1} + \ sum_ {i = 1} ^ {q} \ theta_i \ varepsilon_ {ti} $$

Nous pouvons voir que le modèle ARMA (p, q) est une combinaison de modèles AR (p) et MA (q) .

Pour donner une certaine intuition du modèle, considérons que la partie AR de l'équation cherche à estimer des paramètres pour X t - i observations de afin de prédire la valeur de la variable dans X t . Il s'agit au final d'une moyenne pondérée des valeurs passées. La section MA utilise la même approche mais avec l'erreur des observations précédentes, ε t - i . Donc au final, le résultat du modèle est une moyenne pondérée.

L'extrait de code suivant montre comment mettre en œuvre un ARMA (p, q) dans R .

# install.packages("forecast")
library("forecast")  

# Read the data 
data = scan('fancy.dat') 
ts_data <- ts(data, frequency = 12, start = c(1987,1)) 
ts_data  
plot.ts(ts_data)

Le traçage des données est normalement la première étape pour savoir s'il existe une structure temporelle dans les données. Nous pouvons voir sur le graphique qu'il y a de fortes pointes à la fin de chaque année.

Le code suivant adapte un modèle ARMA aux données. Il exécute plusieurs combinaisons de modèles et sélectionne celui qui a le moins d'erreur.

# Fit the ARMA model
fit = auto.arima(ts_data) 
summary(fit) 

# Series: ts_data  
# ARIMA(1,1,1)(0,1,1)[12]                     
#    Coefficients: 
#    ar1     ma1    sma1 
# 0.2401  -0.9013  0.7499 
# s.e.  0.1427   0.0709  0.1790 

#  
# sigma^2 estimated as 15464184:  log likelihood = -693.69 
# AIC = 1395.38   AICc = 1395.98   BIC = 1404.43 

# Training set error measures: 
#                 ME        RMSE      MAE        MPE        MAPE      MASE       ACF1 
# Training set   328.301  3615.374  2171.002  -2.481166  15.97302  0.4905797 -0.02521172