Appliquer des fonctions à des fenêtres glissantes

Manipuler des séries temporelles en R

Harrison Brown

Graduate Researcher in Geography

Fonctions glissantes de zoo

zoo::roll* :

  • rollmean()
  • rollmax()
  • rollsum()
  • ...

Limites :

  • Pas de rollmin() !
  • Seules certaines fonctions existent
Manipuler des séries temporelles en R

rollapply

rollapply(data = ftse,
          width = 7,
          FUN = min,
          align = 'right',
          fill = NA)

Arguments :

  • data : Objet de série temporelle
  • width : Largeur de la fenêtre (k)
  • FUN : Fonction de synthèse (mean, max, ...)
  • align : Alignement de la fenêtre ('left', 'right' ou 'center')
  • fill : Valeurs à renseigner hors fenêtre
Manipuler des séries temporelles en R

Appliquer des fonctions en fenêtre glissante

Objectif :

  • Trouver l'étendue des valeurs sur une fenêtre de 30 jours
  • Approcher la « variation » des données
daily_temp
2019-01-01 13.191304
2019-01-02  6.945833
2019-01-03  8.495833
2019-01-04  8.683333
2019-01-05  7.400000
...
find_range <- function(x){
  max(x) - min(x)
}
daily_temp_range <- 
  rollapply(
      daily_temp,
    FUN = find_range,
    width = 30,
    align = 'right',
    fill = NA
  )
Manipuler des séries temporelles en R

Appliquer des fonctions en fenêtre glissante

autoplot(daily_temp_range) + 
  theme_light() + 
  labs(y = 'Plage de températures')

Graphique de la série « plage de températures quotidiennes ». Il montre comment l'étendue varie dans le temps : une fenêtre glissante de 30 jours est utilisée, et la différence entre les valeurs minimale et maximale est tracée.

Manipuler des séries temporelles en R

Passons à la pratique !

Manipuler des séries temporelles en R

Preparing Video For Download...