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

Отображение скользящих средних

Временной ряд можно также визуализировать с помощью скользящих средних. Это равносильно «сглаживанию» данных и особенно полезно, когда временной ряд содержит много шумов или выбросов. Для заданного DataFrame df скользящее среднее временного ряда вычисляется следующей командой:

df_mean = df.rolling(window=12).mean()

Параметр window следует задавать в соответствии с гранулярностью вашего временного ряда. Например, если временной ряд содержит дневные данные и вы хотите получить скользящие значения за целый год, укажите параметр window=365. Кроме того, скользящие значения легко получить и для других метрик, например стандартного отклонения (.std()) или дисперсии (.var()).

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

Визуализация данных временных рядов в Python

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

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

  • Вычислите скользящее среднее co2_levels за 52 недели и сохраните результат в переменную ma.
  • Вычислите скользящее стандартное отклонение co2_levels за 52 недели и сохраните результат в переменную mstd.
  • Рассчитайте верхнюю границу временного ряда как скользящее среднее + (2 * скользящее стандартное отклонение) и сохраните результат в ma[upper]. Аналогично рассчитайте нижнюю границу как скользящее среднее − (2 * скользящее стандартное отклонение) и сохраните результат в ma[lower].
  • Постройте линейный график для ma.

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

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

# Compute the 52 weeks rolling mean of the co2_levels DataFrame
ma = ____.rolling(window=____).____()

# Compute the 52 weeks rolling standard deviation of the co2_levels DataFrame
mstd = ____

# Add the upper bound column to the ma DataFrame
ma['upper'] = ma['co2'] + (____ * ____)

# Add the lower bound column to the ma DataFrame
ma['lower'] = ma['co2'] - (____ * ____)

# Plot the content of the ma DataFrame
ax = ____(linewidth=0.8, fontsize=6)

# Specify labels, legend, and show the plot
ax.set_xlabel('Date', fontsize=10)
ax.set_ylabel('CO2 levels in Mauai Hawaii', fontsize=10)
ax.set_title('Rolling mean and variance of CO2 levels\nin Mauai Hawaii from 1958 to 2001', fontsize=10)
plt.show()
Редактировать и запускать код