CommencezCommencez 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 devez connaître la moyenne cumulative tout au long de chaque saison? Les statisticiens comme les amateurs de sport s'appuient souvent sur cette moyenne pour comparer une équipe à ses rivales.

Pour calculer une moyenne cumulative dans chaque saison, vous reviendrez à la méthode split-lapply-rbind abordée au chapitre trois. Vous allez d'abord scinder les données par saison, puis appliquer une fonction de moyenne cumulative à la colonne win_loss de chaque saison, puis regrouper les valeurs dans un objet xts.

Une fonction personnalisée cummean(), qui génère une somme cumulative et la divise par le nombre de valeurs incluses dans la somme, a été préparée pour vous. Les données redsox_xts, incluant la colonne win_loss, sont disponibles dans votre espace de travail.

Cette activité fait partie du cours

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

Voir le cours

Instructions de l’exercice

  • Utilisez split() pour répartir les données redsox_xts par saisons (dans ce cas-ci, par years). Attribuez le résultat à redsox_seasons.
  • Utilisez lapply() pour calculer la moyenne cumulative pour chaque saison. Pour cet exercice, une fonction cummean() a été conçue : elle calcule la somme (avec cumsum()) et la divise par le nombre d'entrées dans la somme (avec seq_along()). Enregistrez ces données dans redsox_ytd.
  • Utilisez do.call() avec rbind pour convertir votre liste 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 durant la saison 2013. Laissez l'argument ylim tel quel dans le code fourni.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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