Skip to contents

Nash-Sutcliffe efficiency (NSE; also called the model efficiency coefficient, MEC) compares the prediction squared error with the squared error from using the observed mean as a constant prediction.

Usage

nse(obs, pred, na.rm = TRUE)

Arguments

obs

Numeric observation vector.

pred

Numeric prediction vector paired with obs.

na.rm

Logical; remove incomplete pairs?

Value

One numeric value.

Details

$$\mathrm{NSE} = 1 - \frac{\sum_{i = 1}^{n}(obs_i - pred_i)^2} {\sum_{i = 1}^{n}(obs_i - \bar{obs})^2}$$

One is ideal; zero means the predictions are no better than predicting the observed mean; negative values indicate worse performance than that benchmark. NSE returns NA with a warning when fewer than two valid pairs remain or the observations have zero variance. It is sensitive to large errors because it uses squared differences. NSE, mec(), and uppercase R2() are identical in this package; they are not lowercase r2().

References

Nash, J. E. and Sutcliffe, J. V. (1970). River flow forecasting through conceptual models part I: A discussion of principles. Journal of Hydrology, 10, 282-290. doi:10.1016/0022-1694(70)90255-6

Janssen, P. H. M. and Heuberger, P. S. C. (1995). Calibration of process-oriented models. Ecological Modelling, 83, 55-66. doi:10.1016/0304-3800(95)00084-9

Legates, D. R. and McCabe, G. J. (1999). Evaluating the use of goodness-of-fit measures in hydrologic and hydroclimatic model validation. Water Resources Research, 35(1), 233-241. doi:10.1029/1998WR900018

Examples

nse(1:3, c(1, 3, 2))
#> [1] 0