polars.Series.ewm_std#

Series.ewm_std(
*,
com: float | None = None,
span: float | None = None,
half_life: float | None = None,
alpha: float | None = None,
adjust: bool = True,
bias: bool = False,
min_periods: int = 1,
ignore_nulls: bool = False,
) Series[source]#

计算指数加权移动标准差。

Parameters:
com

以质心为中心指定衰减,\(\gamma\),使用

\[\alpha = \frac{1}{1 + \gamma} \; \forall \; \gamma \geq 0\]
span

根据跨度\(\theta\)指定衰减

\[\alpha = \frac{2}{\theta + 1} \; \forall \; \theta \geq 1\]
half_life

以半衰期\(\lambda\)来指定衰减,

\[\alpha = 1 - \exp \left\{ \frac{ -\ln(2) }{ \lambda } \right\} \; \forall \; \lambda > 0\]
alpha

直接指定平滑因子alpha,\(0 < \alpha \leq 1\)

adjust

在初始阶段通过衰减调整因子进行除法,以考虑相对权重的不平衡

  • adjust=True(默认值)时,EW 函数使用权重 \(w_i = (1 - \alpha)^i\) 计算

  • adjust=False 时,EW 函数通过递归计算

    \[\begin{split}y_0 &= x_0 \\ y_t &= (1 - \alpha)y_{t - 1} + \alpha x_t\end{split}\]
bias

bias=False 时,应用校正以使估计在统计上无偏。

min_periods

窗口中需要的最小观察次数才能有值(否则结果为null)。

ignore_nulls

在计算权重时忽略缺失值。

  • ignore_nulls=False(默认)时,权重基于绝对位置。 例如,在计算 [\(x_0\), None, \(x_2\)] 的最终加权平均值时,\(x_0\)\(x_2\) 的权重分别为 \((1-\alpha)^2\)\(1\)(如果 adjust=True),以及 \((1-\alpha)^2\)\(\alpha\)(如果 adjust=False)。

  • ignore_nulls=True 时,权重基于相对位置。例如,在计算 [\(x_0\), None, \(x_2\)] 的最终加权平均值时,\(x_0\)\(x_2\) 的权重分别为 \(1-\alpha\)\(1\)(如果 adjust=True),或者 \(1-\alpha\)\(\alpha\)(如果 adjust=False)。

示例

>>> s = pl.Series("a", [1, 2, 3])
>>> s.ewm_std(com=1, ignore_nulls=False)
shape: (3,)
Series: 'a' [f64]
[
    0.0
    0.707107
    0.963624
]