Calculer une moyenne glissante pour tous les sports
Maintenant que vous maîtrisez le sous-ensemble de vos données pour ne garder que les matchs de fin de semaine, votre cliente souhaite une autre approche. Peut-être que l'industrie du tourisme à Boston profite d'un élan lorsque les équipes locales remportent plus de matchs à domicile.
Plutôt que de cibler les matchs de fin de semaine, votre tâche est de produire une moyenne glissante des victoires/défaites en vous concentrant sur les matchs joués à Boston. Pour créer cet indicateur, revenez à la commande rollapply() utilisée plus haut, cette fois en appliquant votre calcul à toutes les équipes sportives de la région de Boston, mais en ne gardant que les matchs disputés à domicile.
Cette activité fait partie du cours
Étude de cas : analyser des séries chronologiques urbaines en R
Instructions de l’exercice
- Filtrez vos données
sportspour ne conserver 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 définir l'argumentFUNàmean. Enregistrez cet indicateur dans votre objethomegamessouswin_loss_20. - Utilisez un appel similaire à
rollapply()pour calculer une moyenne mobile sur100matchs. Enregistrez cet indicateur dans votre objethomegamessouswin_loss_100. - Utilisez
plot.zoo()pour visualiser les deux indicateurs. Assurez-vous de sélectionner les colonneswin_loss_20etwin_loss_100et de définir l'argumentplot.typeà"single"pour voir les deux dans le même panneau. Laissez les argumentsltyetlwdtels quels.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)