Ce que je sais sur les séries temporelles (1/5)

[This article was first published on Learning Data Science , and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Ce que je sais sur les séries temporelles (1/5)

En lisant la préface de Flore Vasseur à l'essai “le monde en 2030 vu par la CIA”, j'ai été très frappé par mon manque de culture macroéconomique. En effet, un essaiqui parle de 2030, regorge presqu'essentiellement de prévisions macroéconomiques basées sur des scenarii plus ou moins long terme. Derrière les analyses, il y a souvent recours à l'économétrie des séries temporelles, pour par exemple estimer que “le monde aura largement engagé sa mutation écologique en raison de la rareté du pétrôle et de l'élévation des prix des matières premières”, il faut sans doute avoir un modèle de prévision des prix et pouvoir projeter ce modèle dans le cadre des modèles d'équilibres généraux.

En bref, j'ai l'impression d'une vraie inculture en prévision macroécronomique.

Alors je lance un fil d'articles autour des séries temporelles.

Définition

Séries temporelles : Analyse statistique d'observations régulièrement espacées dans le temps. Historique : Astronomie, voir (“On the periodicity of sunspots”, 1906). On peut même aller plus loin. Un manuscrit du Xeme siècle essayait déjà de représenter l'inclinaison des orbites des planètes en fonction du temps et on doit plusieurs siècles plus tard à Kepler d'avoir pu énoncer les lois sur les mouvements des planètes.

Aller plus loin :

A quoi ça sert

Prévoir : Très utile dans un monde qui change d'imaginer demain. Exemple : la consommation d'électricité en France.

Théorie

Les ramifications théoriques des séries temporelles se trouvent un peu partout en analyse mathématique. Les processus stochastiques, les chaines de markov, l'analyse spectrale, bref, selon que l'on suit ce cours pour la première fois dans une faculté d'économie ou de mathématiques, l'approche peut être très différente et les degrés de compréhension aussi. Une bonne façon d'introduire à la théorie mathématique derrière les séries temporelles reste pour moi l'étude des chaines de markov. On peut consulter ici.

Modélisation

4.1. Première approche : Le lissage

Considérons les cours du CAC 40 depuis le 01 janvier 2008. Dans toute la série d'articles sur les séries temporelles, nous allons travailler avec ces chroniques.

library(tseries)
library(zoo)
cac = get.hist.quote("^FCHI", start = "2008-01-01", end = "2010-01-01")

## time series starts 2008-01-02
## time series ends   2009-12-31

plot(cac, col = "lightblue", main = "CAC 40 depuis le 01 janvier 2008")

plot of chunk unnamed-chunk-1

On va analyser uniquement les cours d'ouverture;

Le lissage consiste à extrapoler une série en vue de faire une prévision. Il n y a pas de bon lissage, tout dépend du poids que l'on accorde au passé et de ce qu'on veut voir dans l'avenir à court, moyen ou long terme. Il y a toute une théorie sur le choix de la “bonne "constante de lissage, lorsque le bue est la prévision, on s'accorde plus ou moins à dire que la minimisation des moindres carrés des erreurs(Prévision vs Réalisation).

  • Lissage par moyenne glissante
Open = cac[, 1]
head(Open)

## 2008-01-02 2008-01-03 2008-01-04 2008-01-07 2008-01-08 2008-01-09 
##       5610       5538       5544       5432       5477       5459

T = time(Open)
MoyenneGlissante = filter(coredata(Open), filter = rep(1/12, 12))
MoyenneGlissante = zoo(MoyenneGlissante, T)
plot(Open, main = "Indice du CAC 40", xaxt = "n")
axis.Date(1, at = seq(T[1], T[length(T)] + 6, "month"), format = "%m/%y", cex.main = 0.6)
lines(MoyenneGlissante, lwd = 2, col = "red")

plot of chunk unnamed-chunk-2

Le lissage permet d'obtenir la tendance de la série. Plus généralement, on a parfois recours à des lissages exponentiels.

  • Lissage exponentiel Holt-Winters propose la méthode de lissage la plus généralisable au travers de trois paramètres dit de réglages. Lorsqu'on ne spécifie pas les paramètres, ils sont calculés automatiquement à partir de l'historique selon la minimisation de l'écart entre la prévision et la réalisation

Mais pour faire un lissage exponentiel en utilisant la méthode HoltWinters, il faut une régularité dans la série, ce qui n'est pas le cas des séries boursières en général.

Considérons donc pour voir le lissage exponentiel un autre type de série. Les exportatios américaines en France, puisqu'il en était question dans Alternatives économiques du mois dernier.

Un formidable package Rdatamarket met à la disposition des "chercheurs” de formidable jeux de données macroéconomiques. J'yreviendrais.

library(rdatamarket)
dminit(yourdmininit;)
exports <- dmlist("1l5r")
exports.ts <- ts(exports$Value, start = 1985, frequency = 12)
head(exports.ts)

## [1] 548.9 483.2 611.3 487.7 566.3 465.3

plot.ts(exports.ts, col = "blue4", lwd = 1)
hw = HoltWinters(exports.ts)
lines(hw$fitted[, 1], col = "red3", lwd = 1)

plot of chunk unnamed-chunk-3

Ce lissage peut permettre de réaliser des prévisions. Et c'est un premier aperçu de la manière donc on peut prolonger une série.

4.2. Décomposition d'une série chronologique Il est en général considéré qu'une série est composée d'une tendance(évolution naturelle), d'une saisonnalité( evènements récurrents aux mêmes périodes) et d'un bruit blanc (marche aléatoire)

Pour décomposer la série, on utilise en R la fonction decompose :

composantes = decompose(x = exports.ts)
plot(composantes)

plot of chunk unnamed-chunk-4

Lorsque rien n'est précisé, le modèle utilisé est un modèle additif. AUtrement dit, il est supposé que la série Exports.ts = Trend + Saison + BB

Une autre façon de voir aurait été de considérer un modèle multiplicatif Exports.ts = Trend x Saison x BB

composantes = decompose(x = exports.ts, type = "multiplicative")
plot(composantes, col = "red")

plot of chunk unnamed-chunk-5

4.3 Autocorrélations

To leave a comment for the author, please follow the link and comment on their blog: Learning Data Science .

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)