CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Sous‑sélectionnez vos données sports pour ne garder que les matchs joués à Boston (homegame = 1) en utilisant la forme data[column == x]. Enregistrez ce nouvel objet sous le nom homegames.
  • Utilisez rollapply() pour calculer la moyenne victoires/défaites des 20 derniers matchs à domicile des équipes de Boston. Vous devrez préciser la colonne win_loss de votre objet homegames, définir width à 20, et fixer l’argument FUN à mean. Enregistrez cet indicateur dans votre objet homegames sous le nom win_loss_20.
  • Utilisez un appel similaire à rollapply() pour calculer une moyenne glissante sur 100 matchs. Enregistrez cet indicateur dans votre objet homegames sous le nom win_loss_100.
  • Utilisez plot.zoo() pour visualiser les deux indicateurs. Veillez à sélectionner les colonnes win_loss_20 et win_loss_100 et à définir l’argument plot.type sur "single" pour les afficher dans le même panneau. Laissez les arguments lty et lwd tels 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)
Modifier et exécuter le code