Skip to content

Error Spread Score

The error spread score (Christensen et al., 2015) is given by:

\[ESS = \left(s^2 - e^2 - e \cdot s \cdot g\right)^2\]

where the mean \(m\), variance \(s^2\), and skewness \(g\) of the ensemble forecast of size \(F\) are computed as follows:

\[m = \frac{1}{F} \sum_{f=1}^{F} X_f, \quad s^2 = \frac{1}{F-1} \sum_{f=1}^{F} (X_f - m)^2, \quad g = \frac{F}{(F-1)(F-2)} \sum_{f=1}^{F} \left(\frac{X_f - m}{s}\right)^3\]

The error in the ensemble mean \(e\) is calculated as \(e = m - y\), where \(y\) is the observed value.

scoringrules.error_spread_score

error_spread_score(
    observations: ArrayLike,
    forecasts: Array,
    /,
    axis: int = -1,
    *,
    backend: Backend = None,
) -> Array

Compute the error-spread score (Christensen et al., 2015) for a finite ensemble.

Parameters:

Name Type Description Default
observations ArrayLike

The observed values.

required
forecasts Array

The predicted forecast ensemble, where the ensemble dimension is by default represented by the last axis.

required
axis int

The axis corresponding to the ensemble. Default is the last axis.

-1
backend Backend

The name of the backend used for computations. Defaults to 'numba' if available, else 'numpy'.

None

Returns:

Type Description
-Array

An array of error spread scores for each ensemble forecast, which should be averaged to get meaningful values.