gs_quant.timeseries.statistics.exponential_std¶
- exponential_std(x, beta=0.75)[source]¶
Exponentially weighted standard deviation
- Parameters:
x (
Series
) – time seriesbeta (
float
) – how much to weigh the previous price in the time series, thus controlling how much importance we place on the (more distant) past. Must be between 0 (inclusive) and 1 (exclusive)
- Return type:
Series
- Returns:
time series of standard deviation of the input series
Usage
Provides an unbiased estimator of exponentially weighted standard deviation of a series [\(X_0\), \(X_1\), \(X_2\), …]:
\(S_t = \sqrt{[EWMA(X_t^2) - EWMA(X_t)^2] * DF_t}\)
where \(EWMA(X_t)\) is the exponential moving average at \(t\) (see function
exponential_moving_average()
), \(DF_t\) is the debiasing factor (see Weighted sample variance for further details):\(DF_t = \frac{(\sum_{i=0}^t w_i)^2} {(\sum_{i=0}^t w_i)^2 - \sum_{i=0}^t w_i^2}\)
where \(w_i\) is the weight assigned to \(i\) th observation:
\(w_i = (1-\beta)\beta^i\) for i<t; \(\beta^i\) for i=t
Examples
Generate price series and compute exponentially weighted standard deviation of returns
>>> prices = generate_series(100) >>> exponential_std(returns(prices), 0.9)
See also