Calculează și reprezintă grafic o medie sezonieră
În exercițiul anterior ai folosit endpoints() și period.apply() pentru a calcula rapid media victoriilor/înfrângerilor echipei Boston Red Sox la finalul fiecărui sezon. Dar ce se întâmplă dacă ai nevoie să cunoști media cumulativă pe parcursul fiecărui sezon? Atât statisticienii, cât și fanii sportului se bazează adesea pe această medie pentru a compara o echipă cu rivalele sale.
Pentru a calcula o medie cumulativă în fiecare sezon, va trebui să revii la formula split-lapply-rbind exersată în Capitolul Trei. Mai întâi, vei împărți datele pe sezoane, apoi vei aplica o funcție de medie cumulativă coloanei win_loss din fiecare sezon, iar în final vei reuni valorile într-un obiect xts.
O funcție personalizată cummean(), care generează o sumă cumulativă și o împarte la numărul de valori incluse în sumă, a fost creată pentru tine. Datele redsox_xts, inclusiv coloana win_loss, sunt disponibile în spațiul tău de lucru.
Acest exercițiu face parte din cursul
Studiu de caz: Analiza seriilor de timp pentru un oraș în R
Instrucțiuni pentru exercițiu
- Folosește
split()pentru a împărți dateleredsox_xtspe sezoane (în acest caz,years). Atribuie rezultatul variabileiredsox_seasons. - Folosește
lapply()pentru a calcula media cumulativă pentru fiecare sezon. În acest exercițiu, funcțiacummean()a fost concepută să calculeze suma (folosindcumsum()) și să o împartă la numărul de intrări din sumă (folosindseq_along()). Salvează aceste date înredsox_ytd. - Folosește
do.call()împreună curbindpentru a converti lista rezultată într-un singur obiect xts (redsox_winloss), care conține media victoriilor/înfrângerilor pe parcursul fiecărui sezon. - Folosește
plot.xts()pentru a vizualiza media cumulativă a victoriilor/înfrângerilor din sezonul2013. Lasă argumentulylimașa cum este în codul pregătit pentru tine.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Split redsox_xts win_loss data into years
redsox_seasons <- split(___$___, f = "___")
# Use lapply to calculate the cumulative mean for each season
redsox_ytd <- lapply(___, cummean)
# Use do.call to rbind the results
redsox_winloss <- do.call(___, ___)
# Plot the win_loss average for the 2013 season
plot.xts(___["___"], ylim = c(0, 1))