polars.Expr.ewm_var#
- Expr.ewm_var(
- *,
- 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 = True,
- Exponentially-weighted moving variance. - Parameters:
- com
- Specify decay in terms of center of mass, \(\gamma\), with \[\alpha = \frac{1}{1 + \gamma} \; \forall \; \gamma \geq 0\]
- span
- Specify decay in terms of span, \(\theta\), with \[\alpha = \frac{2}{\theta + 1} \; \forall \; \theta \geq 1\]
- half_life
- Specify decay in terms of half-life, \(\lambda\), with \[\alpha = 1 - \exp \left\{ \frac{ -\ln(2) }{ \lambda } \right\} \; \forall \; \lambda > 0\]
- alpha
- Specify smoothing factor alpha directly, \(0 < \alpha \leq 1\). 
- adjust
- Divide by decaying adjustment factor in beginning periods to account for imbalance in relative weightings - When - adjust=Truethe EW function is calculated using weights \(w_i = (1 - \alpha)^i\)
- When - adjust=Falsethe EW function is calculated recursively by\[\begin{split}y_0 &= x_0 \\ y_t &= (1 - \alpha)y_{t - 1} + \alpha x_t\end{split}\]
 
- bias
- When - bias=False, apply a correction to make the estimate statistically unbiased.
- min_periods
- Minimum number of observations in window required to have a value (otherwise result is null). 
- ignore_nulls
- Ignore missing values when calculating weights. - When - ignore_nulls=False(default), weights are based on absolute positions. For example, the weights of \(x_0\) and \(x_2\) used in calculating the final weighted average of [\(x_0\), None, \(x_2\)] are \((1-\alpha)^2\) and \(1\) if- adjust=True, and \((1-\alpha)^2\) and \(\alpha\) if- adjust=False.
- When - ignore_nulls=True, weights are based on relative positions. For example, the weights of \(x_0\) and \(x_2\) used in calculating the final weighted average of [\(x_0\), None, \(x_2\)] are \(1-\alpha\) and \(1\) if- adjust=True, and \(1-\alpha\) and \(\alpha\) if- adjust=False.
 
 
 - Examples - >>> df = pl.DataFrame({"a": [1, 2, 3]}) >>> df.select(pl.col("a").ewm_var(com=1)) shape: (3, 1) ┌──────────┐ │ a │ │ --- │ │ f64 │ ╞══════════╡ │ 0.0 │ │ 0.5 │ │ 0.928571 │ └──────────┘