irmse¶
- HydroErr.HydroErr.irmse(simulated_array: ndarray[tuple[Any, ...], dtype[floating | integer]] | Sequence[int | float], observed_array: ndarray[tuple[Any, ...], dtype[floating | integer]] | Sequence[int | float], replace_nan: float | None = None, replace_inf: float | None = None, remove_neg: bool = False, remove_zero: bool = False) floating[Any]¶
Compute the inertial root mean square error (IRMSE) between the simulated and observed data.
\[\Delta^{}_o=(O_2 - O_1, O_3 - O_2, ... , O_n - O_{n-1})\]\[\sigma^{}_{\Delta^{}_o}=\sqrt{\sum_{i=1}^{n}\frac{(\Delta_{o^{}_i}-\overline{\Delta_o})^2}{n-1}}= \text{std} (\Delta_o)\]\[IRMSE = \frac{RMSE}{\sigma^{}_{\Delta^{}_o}}\]Range: 0 ≤ IRMSE < inf, lower is better.
Notes: This metric is the RMSE devided by by the standard deviation of the gradient of the observed timeseries data. This metric is meant to be help understand the ability of the model to predict changes in observation.
- Parameters:
simulated_array – An array of simulated data from the time series.
observed_array – An array of observed data from the time series.
replace_nan – If given, indicates which value to replace NaN values with in the two arrays. If None, when a NaN value is found at the i-th position in the observed OR simulated array, the i-th value of the observed and simulated array are removed before the computation.
replace_inf – If given, indicates which value to replace Inf values with in the two arrays. If None, when an inf value is found at the i-th position in the observed OR simulated array, the i-th value of the observed and simulated array are removed before the computation.
remove_neg – If True, when a negative value is found at the i-th position in the observed OR simulated array, the i-th value of the observed AND simulated array are removed before the computation.
remove_zero – If true, when a zero value is found at the i-th position in the observed OR simulated array, the i-th value of the observed AND simulated array are removed before the computation.
- Return type:
The inertial root mean square error.
Examples
>>> import HydroErr as he >>> import numpy as np
>>> sim = np.array([5, 7, 9, 2, 4.5, 6.7]) >>> obs = np.array([4.7, 6, 10, 2.5, 4, 7]) >>> he.irmse(sim, obs) 0.14572738134831856
References
Daga, M., Deo, M.C., 2009. Alternative data-driven methods to estimate wind from waves by inverse modeling. Natural Hazards 49(2) 293-310.