CommencerCommencer gratuitement

Calculer et tracer une moyenne saisonnière

Dans l’exercice précédent, vous avez utilisé endpoints() et period.apply() pour calculer rapidement la moyenne victoires/défaites des Boston Red Sox à la fin de chaque saison. Mais que faire si vous avez besoin de connaître la moyenne cumulative tout au long de chaque saison ? Les statisticiens comme les passionnés de sport s’appuient souvent sur cette moyenne pour comparer une équipe à ses rivales.

Pour calculer une moyenne cumulative dans chaque saison, vous allez revenir à la formule split-lapply-rbind vue au chapitre trois. Vous commencerez par scinder les données par saison, puis vous appliquerez une fonction de moyenne cumulative à la colonne win_loss de chaque saison, puis vous recombinerez les valeurs dans un objet xts.

Une fonction personnalisée cummean(), qui calcule une somme cumulative et la divise par le nombre de valeurs incluses dans la somme, a été mise à votre disposition. Les données redsox_xts, incluant la colonne win_loss, sont disponibles dans votre espace de travail.

Cet exercice fait partie du cours

Étude de cas : analyser des séries temporelles urbaines en R

Afficher le cours

Instructions

  • Utilisez split() pour découper les données redsox_xts par saisons (ici, par years). Assignez le résultat à redsox_seasons.
  • Utilisez lapply() pour calculer la moyenne cumulative de chaque saison. Pour cet exercice, une fonction cummean() a été prévue : elle calcule la somme (avec cumsum()) et la divise par le nombre d’entrées dans la somme (avec seq_along()). Enregistrez ce résultat dans redsox_ytd.
  • Utilisez do.call() avec rbind pour convertir la liste produite en un seul objet xts (redsox_winloss) qui contient la moyenne victoires/défaites tout au long de chaque saison.
  • Utilisez plot.xts() pour visualiser la moyenne cumulative victoires/défaites pendant la saison 2013. Laissez l’argument ylim tel quel dans le code prérempli.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Split redsox_xts win_loss data into years 
redsox_seasons <- split(___$___, f = "___")

# Use lapply to calculate the cumulative mean for each season
redsox_ytd <- lapply(___, cummean)

# Use do.call to rbind the results
redsox_winloss <- do.call(___, ___)

# Plot the win_loss average for the 2013 season
plot.xts(___["___"], ylim = c(0, 1))
Modifier et exécuter le code