Скользящее среднее (Moving Average) - Лена Капаца
Скользящее среднее (Moving Average) by Лена Капаца Jan. 3, 2024 Основы

Скользящее среднее – это метод сглаживания временного ряда, который используется для уменьшения шума и выявления общих трендов в данных. Этот метод подразумевает усреднение значений внутри подвижного окна (окна скользящего среднего) и помогает выявить общую динамику в данных.

Применение скользящего среднего

2.1. Сглаживание данных: сглаживание шумов и обработка Выбросов (Outlier) в данных. Это позволяет выделить общую тенденцию и улучшить визуализацию данных.

2.2. Предсказание трендов: Скользящее среднее может использоваться для предсказания общих трендов в данных, что полезно при анализе экономических показателей, погоды, продаж и других временных рядов.

Давайте рассмотрим пример использования скользящего среднего на данных о ежедневных продажах с использованием библиотеки Pandas.


import pandas as pd
import matplotlib.pyplot as plt


Сгенерируем данные:


data = {'дата': pd.date_range(start='2022-01-01', end='2022-01-12'),
        'продажи': [50, 48, 55, 60, 58, 70, 65, 80, 82, 75, 90, 88]}

df = pd.DataFrame(data)
df.set_index('дата', inplace=True)


Применим скользящеее среднее с окном (то есть числом дней, взятых в расчет при определении координат точки скользяшего среднего):


df['MA_3'] = df['продажи'].rolling(window=3).mean()


Визуализируем результат:

plt.figure(figsize=(10, 6))
plt.plot(df['продажи'], label='Продажи')
plt.plot(df['MA_3'], label='Скользящее среднее (окно=3)', linestyle='--', color='orange')
plt.title('Анализ временных рядов с использованием скользящего среднего')
plt.xlabel('Дата')
plt.ylabel('Продажи')
plt.legend()
plt.show()

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

© Лена Капаца. Все права защищены.