Skip to contents

This document details the formulation of the statistical and complementary indicators used in the derivation of the MQI.

Statistical Performance Indicators

Temporal Indicators

Averaged measured value

O‾=∑t=1NtO(t)Nt \bar{O} = \frac{\sum_{t=1}^{N_t} O(t)}{N_{t}}

Averaged modelled value

M‾=∑t=1NtM(t)Nt \bar{M} = \frac{\sum_{t=1}^{N_t} M(t)}{N_{t}}

Bias (vec_bias())

BIAS=M‾−O‾ BIAS = \bar{M} - \bar{O}

Root Mean Square Error (vec_rmse())

RMSE=1Nt∑t=1Nt(O(t)−M(t))2 RMSE = \sqrt{\frac{1}{N_t}\sum_{t=1}^{N_t}{(O(t)-M(t))^2}}

Measurement Root Mean Square Uncertainty (vec_rmsu())

RMSUO=1Nt∑t=1NtU2(O(t)) RMSU_O = \sqrt{\frac{1}{N_t}\sum_{t=1}^{N_t}U^2(O(t))}

Correlation coefficient (vec_cor())

R=∑t=1Nt(M(t)−M‾)(O(t)−O‾)∑t=1Nt(M(t)−M‾)2∑t=1Nt(O(t)−O‾)2 R = \frac{\sum_{t=1}^{N_t}(M(t)-\bar{M})(O(t)-\bar{O})}{\sqrt{\sum_{t=1}^{N_t}(M(t)-\bar{M})^2} \sqrt{\sum_{t=1}^{N_t}(O(t)-\bar{O})^2}}

Measurement standard deviation (vec_sd())

σO=1Nt∑t=1Nt(O(t)−O‾)2 \sigma_{O} = \sqrt{\frac{1}{N_t}\sum_{t=1}^{N_t}{(O(t)-\bar{O})^2}}

Modelling standard deviation (vec_sd())

σM=1Nt∑t=1Nt(M(t)−M‾)2 \sigma_{M} = \sqrt{\frac{1}{N_t}\sum_{t=1}^{N_t}{(M(t)-\bar{M})^2}}

Centred Root Mean Square Error (vec_crmse())

σM=1Nt∑t=1Nt[(M(t)−M‾)−(O(t)−O‾)]2 \sigma_{M} = \sqrt{\frac{1}{N_t}\sum_{t=1}^{N_t}[(M(t)-\bar{M}) - (O(t)-\bar{O})]^2}

Model Quality Indicator (vec_mqi())

MQIshort=RMSE1+βshort2⋅RMSUO MQI_{short} = \frac{RMSE}{\sqrt{1+\beta^2_{short}}\cdot RMSU_{O}}

Spatial Indicators

Averaged measured value (all sampling points)

O‾sp=∑s=1NsO‾(t)Ns \bar{O}^{sp} = \frac{\sum_{s=1}^{N_s} \bar{O}(t)}{N_{s}}

Averaged modelled value (all sampling points)

M‾sp=∑s=1NsM‾(t)Ns \bar{M}^{sp} = \frac{\sum_{s=1}^{N_s} \bar{M}(t)}{N_{s}}

Bias (vec_bias())

BIASsp=M‾sp−O‾sp BIAS^{sp} = \bar{M}^{sp} - \bar{O}^{sp}

Root Mean Square Error (vec_rmse())

RMSEsp=1Ns∑s=1Ns(O‾(s)−M‾(s))2 RMSE^{sp} = \sqrt{\frac{1}{N_s}\sum_{s=1}^{N_s}{(\bar{O}(s)-\bar{M}(s))^2}}

Measurement Root Mean Square Uncertainty (vec_rmsu())

RMSUO‾sp=1Ns∑s=1NsUO2(O‾(t)) RMSU_\bar{O}^{sp} = \sqrt{\frac{1}{N_s}\sum_{s=1}^{N_s}U_O^2(\bar{O}(t))}

Correlation coefficient (vec_cor())

Rsp=∑s=1Ns(M‾(s)−M‾sp)(O‾(s)−O‾sp)∑s=1Ns(M‾(s)−M‾sp)2∑s=1Ns(O‾(s)−O‾sp)2 R^{sp} = \frac{\sum_{s=1}^{N_s}(\bar{M}(s)-\bar{M}^{sp})(\bar{O}(s)-\bar{O}^{sp})}{\sqrt{\sum_{s=1}^{N_s}(\bar{M}(s)-\bar{M}^{sp})^2} \sqrt{\sum_{s=1}^{N_s}(\bar{O}(s)-\bar{O}^{sp})^2}}

Measurement standard deviation (vec_sd())

σO‾sp=1Ns−1∑s=1Ns(O‾(s)−O‾sp)2 \sigma_{\bar{O}}^{sp} = \sqrt{\frac{1}{N_s-1}\sum_{s=1}^{N_s}{(\bar{O}(s)-\bar{O}^{sp})^2}}

Modelling standard deviation (vec_sd())

σM‾sp=1Ns−1∑s=1Ns(M‾(s)−M‾sp)2 \sigma_{\bar{M}}^{sp} = \sqrt{\frac{1}{N_s-1}\sum_{s=1}^{N_s}{(\bar{M}(s)-\bar{M}^{sp})^2}}

Model Quality Indicator (vec_mqi())

MQIlong=|BIAS|1+βlong2⋅UO(O‾) MQI_{long} = \frac{|BIAS|}{\sqrt{1+\beta^2_{long}}\cdot U_O(\bar{O})}

Complementary Performance Indicators

Temporal Indicators

Bias Indicator (objective: |TIB|90th≤1|TI_B|_{90th} \leq 1) (vec_pi_bias())

TIB=BIAS1+βshort2RMSUO TI_B = \frac{BIAS}{\sqrt{1+\beta^2_{short}} RMSU_O}

Correlation Indicator (objective: |TIR|90th≤1|TI_R|_{90th} \leq 1) (vec_pi_cor())

TIR=(1−R)2σOσM1+βshort2RMSUO TI_R = \frac{\sqrt{(1-R)2\sigma_O\sigma_M}}{\sqrt{1+\beta^2_{short}} RMSU_O}

Standard Deviation Indicator (objective: |TIσ|90th≤1|TI_\sigma|_{90th} \leq 1) (vec_pi_sd())

TIσ=σM−σO1+βshort2RMSUO TI_\sigma = \frac{\sigma_M-\sigma_O}{\sqrt{1+\beta^2_{short}} RMSU_O} Centred Root Mean Square Indicator (vec_ti_crmse())

TICRMSE=CRMSE1+βshort2RMSUO=TIR2+TIσ2=MQIshort2−TIB2 TI_{CRMSE} = \frac{CRMSE}{\sqrt{1+\beta^2_{short}} RMSU_O} = \sqrt{TI_R^2 + TI_\sigma^2} = \sqrt{MQI_{short}^2-TI_B^2}

Spatial Indicators

Bias Indicator (objective: |SIB|≤1|SI_B| \leq 1) (vec_pi_bias())

SIB=BIASsp1+βlong2RMSUO‾sp SI_B = \frac{BIAS^{sp}}{\sqrt{1+\beta^2_{long} RMSU_\bar{O}^{sp}}}

Correlation Indicator (objective: SIR≤1SI_R \leq 1) (vec_pi_cor())

SIR=(1−Rsp)2σO‾spσM‾sp1+βlong2RMSUO‾sp SI_R = \frac{\sqrt{(1-R^{sp})2\sigma_{\bar{O}^{sp}}\sigma_{\bar{M}^{sp}}}}{\sqrt{1+\beta^2_{long}} RMSU_\bar{O}^{sp}}

Standard Deviation Indicator (objective: |SIσ|≤1|SI_\sigma| \leq 1) (vec_pi_sd())

SIσ=σM‾sp−σO‾sp1+βlong2RMSUO‾sp SI_\sigma = \frac{\sigma_\bar{M}^{sp}-\sigma_\bar{O}^{sp}}{\sqrt{1+\beta^2_{long}} RMSU_\bar{O}^{sp}}

Root Mean Square Error Indicator (objective: SIRMSE≤1SI_{RMSE} \leq 1) (vec_si_rmse())

SIRMSE=RMSEsp1+βlong2RMSUO‾sp SI_{RMSE} = \frac{RMSE^{sp}}{\sqrt{1+\beta^2_{long}} RMSU_\bar{O}^{sp}}

Statistical Methods

Percentile by Linear Interpolation

In mqo_percentile(), the 90th percentile value is inferred by linear interpolation:

MQI90th=MQI(N90th)+(MQI(N90th+1)−MQI(N90th))⋅D MQI_{90th} = MQI(N_{90th}) + (MQI(N_{90th}+1)-MQI(N_{90th})) \cdot D

where N90thN_{90th} is the calculated 90th percentile of the number of sampling points defined as the integer part of a given real number (e.g., floor(3.9)=3floor(3.9)=3):

N90th=floor(0.9Ns) N_{90th}=floor(0.9N_{s})

with NsN_s the total number of available sampling points and DD the non-integer distance defined as:

D=0.9Ns−N90th D= 0.9N_{s}-N_{90th}

Note: While mqo_percentile() default to the 90th percentile (quantile = 0.9), any quantile between 0 and 1 can be calculated in this way.