Le modèle Moving Average (MA)
Une idée contre-intuitive
Section titled “Une idée contre-intuitive”Malgré son nom, un modèle Moving Average (MA) ne fait pas la moyenne des valeurs passées. Il modélise l’écho de chocs aléatoires passés — des surprises imprévisibles — sur la valeur actuelle :
y_t = mu + epsilon_t + theta_1 * epsilon_{t-1} + ... + theta_q * epsilon_{t-q}où chaque epsilon est un choc aléatoire imprévisible (un incident, un pic viral). Un MA(q) a une propriété nette : sa mémoire s’arrête brutalement après q jours — passé ce délai, aucun choc ancien n’influence plus la prévision.
Ajuster un modèle MA sur les données
Section titled “Ajuster un modèle MA sur les données”from statsmodels.tsa.arima.model import ARIMA
modele_ma = ARIMA(train, order=(0, 0, 1), trend="c").fit()print("AIC:", modele_ma.aic)AIC: 3405.0order=(0, 0, 1) signifie : 0 terme autorégressif, aucune différenciation, 1 terme MA — soit un MA(1) pur.
Évaluer honnêtement : la prévision glissante à un pas
Section titled “Évaluer honnêtement : la prévision glissante à un pas”Comparer une prévision qui s’étend sur 30 jours d’un coup à une baseline de persistance qui, elle, connaît la vraie valeur de la veille à chaque jour serait déloyal — la persistance disposerait toujours de plus d’information. La bonne pratique : réévaluer le modèle en prévision glissante à un pas, en réinjectant après chaque jour la vraie observation, sans jamais réestimer les coefficients :
resultat_etendu = modele_maprevisions_un_pas = []for jour in test.index: pred = resultat_etendu.forecast(steps=1) previsions_un_pas.append(pred.iloc[0]) resultat_etendu = resultat_etendu.append(test.loc[[jour]])
mae = np.mean(np.abs(test.values - previsions_un_pas))print("MAE (1 pas):", round(mae, 2))MA(1): AIC=3405.0, MAE (1 pas)=8.39.append() prolonge un modèle déjà ajusté avec de nouvelles observations, sans réestimer ses coefficients — exactement ce qui se passerait en production : le modèle reste figé, seule la fenêtre d’observation avance jour après jour.
Avec un MAE de 8,39, le MA(1) bat déjà la baseline moyenne (13,12) mais pas encore la persistance (7,33) — un signal qu’un modèle purement MA ne capture pas encore toute la mémoire de cette série.
Prochaine étape
Section titled “Prochaine étape”👉 De MA à ARMA : le rôle de l’autorégression
Junior TSAFACK – 12/09/2026