Метод ewm
Метод ewm применяется к DataFrame
и возвращает объект EWM, который позволяет
вычислять различные экспоненциально взвешенные
статистики. Основные параметры метода:
com (центрированное время),
span (период),
halflife (период полураспада),
alpha (коэффициент сглаживания),
min_periods (минимальное количество наблюдений),
adjust (коэффициент коррекции),
ignore_na (игнорирование пропусков),
axis (ось для расчёта).
Синтаксис
df.ewm(com=None, span=None, halflife=None, alpha=None,
min_periods=0, adjust=True, ignore_na=False,
axis=0, times=None, method='single')
Пример
Давайте вычислим экспоненциально взвешенное среднее
для столбцов таблицы с параметром span равным 3:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.ewm(span=3).mean()
print(res)
Результат выполнения кода:
a b
0 1.000000 10.0
1 1.666667 16.6
2 2.428571 24.2
3 3.210526 32.1
4 4.000000 40.0
Пример
Давайте вычислим экспоненциально взвешенную дисперсию
с параметром halflife равным 2:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.ewm(halflife=2).var()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 0.250000 25.000000
2 0.578947 57.894737
3 0.846715 84.671537
4 1.081081 108.108108
Пример
Давайте вычислим экспоненциально взвешенную
стандартную ошибку с коэффициентом alpha
равным 0.5 и параметром adjust
равным False:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.ewm(alpha=0.5, adjust=False).std()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 0.707107 7.071068
2 0.963624 9.636242
3 1.060660 10.606602
4 1.101020 11.010202