НачатьНачать бесплатно

Вычисление и визуализация сезонного среднего

В предыдущем упражнении вы использовали endpoints() и period.apply(), чтобы быстро вычислить среднее соотношение побед и поражений команды Boston Red Sox по итогам каждого сезона. Но что, если нужно знать накопленное среднее на протяжении всего сезона? Статистики и болельщики часто опираются на этот показатель, сравнивая команды между собой.

Чтобы вычислить накопленное среднее для каждого сезона, потребуется вернуться к формуле split-lapply-rbind, которую вы отрабатывали в третьей главе. Сначала данные разбиваются по сезонам, затем к столбцу win_loss каждого сезона применяется функция накопленного среднего, после чего значения объединяются обратно в объект xts.

Пользовательская функция cummean(), которая вычисляет накопленную сумму и делит её на количество учтённых значений, уже создана за вас. Данные redsox_xts, включая столбец win_loss, доступны в вашем рабочем пространстве.

Это упражнение является частью курса

Практический пример: анализ городских временных рядов в R

Посмотреть курс

Инструкции к упражнению

  • Используйте split(), чтобы разбить данные redsox_xts по сезонам (в данном случае — по years). Результат сохраните в redsox_seasons.
  • Используйте lapply(), чтобы вычислить накопленное среднее для каждого сезона. В этом упражнении для вас создана функция cummean(), которая вычисляет сумму с помощью cumsum() и делит её на количество элементов с помощью seq_along(). Сохраните результат в redsox_ytd.
  • Используйте do.call() с rbind, чтобы преобразовать список в единый объект xts (redsox_winloss), содержащий среднее соотношение побед и поражений на протяжении каждого сезона.
  • Используйте plot.xts(), чтобы визуализировать накопленное среднее соотношение побед и поражений в сезоне 2013. Оставьте аргумент ylim без изменений в заранее написанном коде.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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))
Редактировать и запускать код