pastas.stats.metrics.picp#

pastas.stats.metrics.picp(obs: pandas.Series, bounds: pandas.DataFrame)#

Compute the prediction interval coverage probability (PICP).

Parameters:
  • obs (pandas.Series) – Pandas Series with the measured time series and a DateTimeIndex.

  • bounds (DataFrame) – DataFrame with the lower (first column) and upper (second columns) bounds of the prediction intervals.

Notes

The Prediction Interval Coverage Probability (PICP) is computed as follows:

\[PICP = \frac{1}{N} \sum_{i=1}^N a_i, a_i = \begin{cases} 1 & \text{if} h_i \text{in} [\hat{h_i}^L, \hat{h_i}^U], \ 0 & \text{otherwise} \end{cases}\]

Examples

>>> import pandas as pd
>>> import numpy as np
>>> from pastas.stats import picp
>>> obs = pd.Series(np.random.rand(100),
                    index=pd.date_range("2000-01-01", periods=100))
>>> bounds = pd.DataFrame(np.random.rand(100, 2), index=obs.index)
>>> picp(obs, bounds)