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
Instructions de l’exercice
- Utilisez
split()pour répartir les donnéesredsox_xtspar saisons (dans ce cas-ci, paryears). Attribuez le résultat àredsox_seasons. - Utilisez
lapply()pour calculer la moyenne cumulative pour chaque saison. Pour cet exercice, une fonctioncummean()a été conçue : elle calcule la somme (aveccumsum()) et la divise par le nombre d'entrées dans la somme (avecseq_along()). Enregistrez ces données dansredsox_ytd. - Utilisez
do.call()avecrbindpour 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 saison2013. Laissez l'argumentylimtel 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))