gs_quant.timeseries.statistics.percentiles

percentiles(x, y=None, w=<gs_quant.timeseries.helper.Window object>)[source]

Rolling percentiles over given window

Parameters
  • x (Series) – value series

  • y (Optional[Series]) – distribution series

  • w (Union[Window, int, str]) – Window or int: size of window and ramp up to use. e.g. Window(22, 10) where 22 is the window size and 10 the ramp up value. If w is a string, it should be a relative date like ‘1m’, ‘1d’, etc. Window size defaults to length of series.

Return type

Series

Returns

timeseries of percentiles

Usage

Calculate percentile rank of \(y\) in the sample distribution of \(x\) over a rolling window of length \(w\):

\(R_t = \frac{\sum_{i=t-N+1}^{t}{[X_i<{Y_t}]}+0.5\sum_{i=t-N+1}^{t}{[X_i={Y_t}]}}{N}\times100\%\)

Where \(N\) is the number of observations in a rolling window. If \(y\) is not provided, calculates percentiles of \(x\) over its historical values. If window length \(w\) is not provided, uses an ever-growing history of values. If \(w\) is greater than the available data size, returns empty.

Examples

Compute percentile ranks of a series in the sample distribution of a second series over \(22\) observations

>>> a = generate_series(100)
>>> b = generate_series(100)
>>> percentiles(a, b, 22)

See also

zscores()