РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
219 of 687 menu

Метод ewm

Метод ewm применяется к Series и возвращает объект EWM, который предоставляет возможность вычислять различные экспоненциально взвешенные статистики, такие как среднее, дисперсия и стандартное отклонение. Основные параметры метода: com (центрированное время полураспада), span (период сглаживания), halflife (период полураспада), alpha (коэффициент сглаживания), adjust (корректировка весов) и ignore_na (игнорирование пропусков).

Синтаксис

ser.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)

Пример

Давайте вычислим экспоненциально взвешенное среднее для ряда чисел с параметром span=3:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5]) res = ser.ewm(span=3).mean() print(res)

Результат выполнения кода:

0 1.000000 1 1.500000 2 2.250000 3 3.125000 4 4.062500 dtype: float64

Пример

Теперь вычислим экспоненциально взвешенное стандартное отклонение с параметром span=5:

import pandas as pd ser = pd.Series([10, 20, 15, 25, 30]) res = ser.ewm(span=5).std() print(res)

Результат выполнения кода:

0 NaN 1 7.071068 2 4.163029 3 4.576073 4 6.131342 dtype: float64

Пример

Рассмотрим влияние параметра adjust на результат. По умолчанию он равен True, что даёт более точные веса. Установим его в False и сравним:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5]) res_adjust = ser.ewm(span=3, adjust=True).mean() res_no_adjust = ser.ewm(span=3, adjust=False).mean() print("adjust=True:") print(res_adjust) print("\nadjust=False:") print(res_no_adjust)

Результат выполнения кода:

adjust=True: 0 1.000000 1 1.500000 2 2.250000 3 3.125000 4 4.062500 dtype: float64 adjust=False: 0 1.000000 1 1.666667 2 2.428571 3 3.222222 4 4.043478 dtype: float64

Пример

Также можно вычислить экспоненциально взвешенную дисперсию, передав соответствующий метод:

import pandas as pd ser = pd.Series([5, 10, 15, 20, 25]) res = ser.ewm(span=4).var() print(res)

Результат выполнения кода:

0 NaN 1 12.500000 2 19.444444 3 20.571429 4 20.310345 dtype: float64

Смотрите также

  • метод rolling,
    который вычисляет скользящие статистики по окну
  • метод expanding,
    который вычисляет расширяющиеся статистики
  • метод mean,
    который вычисляет обычное среднее значение
  • метод std,
    который вычисляет стандартное отклонение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить