Calculer une moyenne glissante tous sports confondus
Maintenant que vous maîtrisez la sélection des matchs pour ne garder que ceux du week‑end, votre client souhaite une autre approche. Le tourisme à Boston bénéficie peut‑être d’un coup de pouce lorsque les équipes locales gagnent plus de matchs à domicile.
Plutôt que de vous concentrer sur les matchs du week‑end, votre mission est de produire une moyenne glissante victoires/défaites centrée sur les matchs joués à Boston. Pour créer cet indicateur, vous allez réutiliser la commande rollapply() vue plus haut, cette fois en appliquant votre calcul à toutes les équipes de la région de Boston, mais en ne conservant que les matchs joués à domicile.
Cet exercice fait partie du cours
Étude de cas : analyser des séries temporelles urbaines en R
Instructions
- Sous‑sélectionnez vos données
sportspour ne garder que les matchs joués à Boston (homegame = 1) en utilisant la formedata[column == x]. Enregistrez ce nouvel objet sous le nomhomegames. - Utilisez
rollapply()pour calculer la moyenne victoires/défaites des 20 derniers matchs à domicile des équipes de Boston. Vous devrez préciser la colonnewin_lossde votre objethomegames, définirwidthà20, et fixer l’argumentFUNàmean. Enregistrez cet indicateur dans votre objethomegamessous le nomwin_loss_20. - Utilisez un appel similaire à
rollapply()pour calculer une moyenne glissante sur100matchs. Enregistrez cet indicateur dans votre objethomegamessous le nomwin_loss_100. - Utilisez
plot.zoo()pour visualiser les deux indicateurs. Veillez à sélectionner les colonneswin_loss_20etwin_loss_100et à définir l’argumentplot.typesur"single"pour les afficher dans le même panneau. Laissez les argumentsltyetlwdtels quels.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Generate a subset of sports data with only homegames
homegames <- sports[sports$___ == ___]
# Calculate the win/loss average of the last 20 home games
homegames$win_loss_20 <- rollapply(___$___, width = ___, FUN = ___)
# Calculate the win/loss average of the last 100 home games
homegames$win_loss_100 <-
# Use plot.xts to generate
plot.zoo(___[, c("___", "___")], plot.type = "___", lty = lty, lwd = lwd)