Метод std аксессора ewm
Метод std аксессора ewm применяется к Series или DataFrame
и вычисляет экспоненциально взвешенное стандартное отклонение.
Он использует те же параметры сглаживания, что и другие методы ewm:
com, span, halflife, alpha.
По умолчанию стандартное отклонение вычисляется с поправкой на смещение (ddof=1).
Метод возвращает объект того же типа, что и исходный.
Синтаксис
Series.ewm(com=None, span=None, halflife=None, alpha=None).std()
DataFrame.ewm(com=None, span=None, halflife=None, alpha=None).std()
Основные параметры метода std:
-
bias(по умолчаниюFalse) - еслиFalse, то используется скорректированная оценка дисперсии. -
numeric_only(по умолчаниюTrue) - вычислять только для числовых столбцов. -
Остальные параметры (
com,span,halflife,alpha) задаются при вызовеewmи управляют сглаживанием.
Пример
Рассмотрим базовый пример вычисления экспоненциально взвешенного стандартного отклонения для ряда данных:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.ewm(span=2).std()
print(res)
Результат выполнения кода:
0 NaN
1 0.707107
2 0.707107
3 0.707107
4 0.707107
dtype: float64
Первое значение всегда NaN, так как для расчёта
стандартного отклонения требуется минимум два наблюдения.
Пример
Теперь используем параметр bias для отключения
корректировки смещения (ddof=0):
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50])
res = ser.ewm(alpha=0.5).std(bias=True)
print(res)
Результат выполнения кода:
0 NaN
1 7.071068
2 8.164966
3 8.660254
4 8.944272
dtype: float64
При bias=True стандартное отклонение вычисляется
без поправки на смещение, что даёт более высокие значения.
Пример
Метод std можно применять к DataFrame,
вычисляя экспоненциально взвешенное стандартное отклонение
для каждого столбца:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [5, 4, 3, 2, 1]
})
res = df.ewm(span=3).std()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 0.707107 0.707107
2 0.707107 0.707107
3 0.707107 0.707107
4 0.707107 0.707107
В результате получаем DataFrame с теми же столбцами,
где каждое значение - это экспоненциально взвешенное
стандартное отклонение для соответствующего столбца.