IniziaInizia gratis

Calcolare una media mobile su tutti gli sport

Ora che hai imparato a sotto-selezionare i dati per includere solo le partite del weekend, il tuo cliente vorrebbe provare un'altra strada. Forse il turismo a Boston riceve una spinta quando le squadre locali vincono più partite in casa.

Invece di concentrarti sulle partite del weekend, ti viene chiesto di generare una media mobile vittorie/sconfitte focalizzata sulle partite giocate a Boston. Per produrre questo indicatore, tornerai al comando rollapply() usato sopra, questa volta applicando il calcolo a tutte le squadre dell’area di Boston ma selezionando solo le partite giocate in casa.

Questo esercizio fa parte del corso

Caso di studio: analisi di serie temporali cittadine in R

Visualizza il corso

Istruzioni dell'esercizio

  • Sotto-seleziona i tuoi dati sports per includere solo le partite giocate a Boston (homegame = 1) usando il formato data[column == x]. Salva questo nuovo oggetto come homegames.
  • Usa rollapply() per calcolare la media vittorie/sconfitte delle ultime 20 partite in casa delle squadre di Boston. Dovrai specificare la colonna win_loss dei dati homegames, impostare width a 20 e l’argomento FUN a mean. Salva questo indicatore nell’oggetto homegames come win_loss_20.
  • Usa una chiamata simile a rollapply() per calcolare una media mobile su 100 partite di vittorie/sconfitte. Salva questo indicatore nell’oggetto homegames come win_loss_100.
  • Usa plot.zoo() per visualizzare entrambi gli indicatori. Assicurati di selezionare le colonne win_loss_20 e win_loss_100 e imposta l’argomento plot.type su "single" per vederli nello stesso pannello. Lascia gli argomenti lty e lwd così come sono.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice