CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Filtrez vos données sports pour ne conserver 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 définir l'argument FUN à mean. Enregistrez cet indicateur dans votre objet homegames sous win_loss_20.
  • Utilisez un appel similaire à rollapply() pour calculer une moyenne mobile sur 100 matchs. Enregistrez cet indicateur dans votre objet homegames sous win_loss_100.
  • Utilisez plot.zoo() pour visualiser les deux indicateurs. Assurez-vous de sélectionner les colonnes win_loss_20 et win_loss_100 et de définir l'argument plot.type à "single" pour voir les deux dans le même panneau. Laissez les arguments lty et lwd tels 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)
Modifier et exécuter le code