scoringrules.owgksmv_ensemble

scoringrules.owgksmv_ensemble#

scoringrules.owgksmv_ensemble(obs: Array, fct: Array, w_func: Callable[[ArrayLike], ArrayLike], m_axis: int = -2, v_axis: int = -1, *, ens_w: Array = None, backend: Backend = None) Array#

Compute the multivariate Outcome-Weighted Gaussian Kernel Score (owGKS) for a finite ensemble.

Given an ensemble forecast \(F_{ens}\) comprised of multivariate members \(\mathbf{x}_{1}, \dots, \mathbf{x}_{M}\), the GKS is

\[\text{GKS}(F_{ens}, y)= - \frac{1}{M} \sum_{m=1}^{M} k(\mathbf{x}_{m}, \mathbf{y}) + \frac{1}{2 M^{2}} \sum_{m=1}^{M} \sum_{j=1}^{M} k(\mathbf{x}_{m}, \mathbf{x}_{j}) + \frac{1}{2}k(y, y)\]

If the fair estimator is to be used, then \(M^{2}\) in the second component of the right-hand-side is replaced with \(M(M - 1)\).

Computation is performed using the ensemble representation of outcome-weighted kernel scores in [Allen et al. (2022)](https://arxiv.org/abs/2202.12732):

\[\mathrm{owGKS}(F_{ens}, \mathbf{y}) = - \frac{1}{M \bar{w}} \sum_{m = 1}^{M} k(\mathbf{x}_{m}, \mathbf{y}) w(\mathbf{x}_{m}) w(\mathbf{y}) + \frac{1}{2 M^{2} \bar{w}^{2}} \sum_{m = 1}^{M} \sum_{j = 1}^{M} k(\mathbf{x}_{m}, \mathbf{x}_{j}) w(\mathbf{x}_{m}) w(\mathbf{x}_{j}) w(\mathbf{y}) + \frac{1}{2}k(\mathbf{y}, \mathbf{y})w(\mathbf{y}),\]

where \(F_{ens}\) is the ensemble forecast \(\mathbf{x}_{1}, \dots, \mathbf{x}_{M}\) with \(M\) members, \(\| \cdotp \|\) is the Euclidean distance, \(w\) is the chosen weight function, \(\bar{w} = \sum_{m=1}^{M}w(\mathbf{x}_{m})/M\), and

\[k(x_{1}, x_{2}) = \exp \left(- \frac{ \| x_{1} - x_{2} \| ^{2}}{2} \right),\]

is the multivariate Gaussian kernel, with :math:` | cdot |` the Euclidean norm.

Parameters:
obsarray_like

The observed values, where the variables dimension is by default the last axis.

fctarray_like

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

w_funccallable, array_like -> array_like

Weight function used to emphasise particular outcomes.

m_axisint

The axis corresponding to the ensemble dimension. Defaults to -2.

v_axisint or tuple of ints

The axis corresponding to the variables dimension. Defaults to -1.

ens_warray_like

Weights assigned to the ensemble members. Array with one less dimension than fct (without the v_axis dimension). Default is equal weighting. Weights are normalised so that they sum to one across the ensemble members.

backendstr

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

Returns:
scorearray_like

The computed Outcome-Weighted GKS.