xskillscore.mape
- xskillscore.mape(a, b, dim=None, weights=None, skipna=False, keep_attrs=False)
Mean Absolute Percentage Error.
\[\mathrm{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \frac{\vert a_{i} - b_{i} \vert} {max(\epsilon, \vert a_{i} \vert)}\]Note
The percent error is calculated in reference to
a
. Percent error is reported as decimal percent. I.e., a value of 1 is 100%. \(\epsilon\) is an arbitrary small yet strictly positive number to avoid undefined results whena
is zero.- Parameters
a (xarray.Dataset or xarray.DataArray) – Labeled array(s) over which to apply the function. (Truth which will be divided by)
b (xarray.Dataset or xarray.DataArray) – Labeled array(s) over which to apply the function.
dim (str, list) – The dimension(s) to apply mape along. Note that this dimension will be reduced as a result. Defaults to None reducing all dimensions.
weights (xarray.Dataset or xarray.DataArray or None) – Weights matching dimensions of
dim
to apply during the function.skipna (bool) – If True, skip NaNs when computing function.
keep_attrs (bool) – If True, the attributes (attrs) will be copied from the first input to the new one. If False (default), the new object will be returned without attributes.
- Returns
Mean Absolute Percentage Error.
- Return type
References
https://en.wikipedia.org/wiki/Mean_absolute_percentage_error
Examples
>>> a = xr.DataArray(np.random.rand(5, 3, 3), dims=['time', 'x', 'y']) >>> b = xr.DataArray(np.random.rand(5, 3, 3), dims=['time', 'x', 'y']) >>> xs.mape(a, b, dim='time') <xarray.DataArray (x: 3, y: 3)> array([[0.6268041 , 9.45134297, 3.28717608], [0.27099746, 1.58105176, 1.48258713], [6.55806162, 0.22271096, 0.39302745]]) Dimensions without coordinates: x, y