KGE {greenbrown}R Documentation

Compute Kling-Gupta efficiency and related metrics of two time series

Description

This function is an implementation of the Kling-Gupta efficiency (KGE) (Gupta et al. 2009) for model evaluation. It was originally developed to compare modelled and observed time series. The KGE is a model evluation criterion that can be decomposed in the contribution of mean, variance and correlation on model performance. In this implemenation, the Kling-Gupta effciency is defined as following: KGE = 1 - eTotal eTotal is the euclidean distance of the actual effects of mean, variance, correlation and trend (optional) on the time series: eTotal = sqrt(eMean + eVar + eCor + eTrend) eTotal can be between 0 (perfect fit) and infinite (worst fit).

Usage

KGE(x, ref, trend = FALSE, mosum.pval = 0.05, h = 0.15, breaks = 0, 
    eTrend.ifsignif = TRUE, ...)

Arguments

x

time series from model result or factorial model run

ref

reference time series (observation or standard model run)

trend

Include the effect of trend in the calculation? (default: FALSE)

mosum.pval

(only used if trend=TRUE) See Trend for details.

h

(only used if trend=TRUE) See Trend for details.

breaks

(only used if trend=TRUE) See Trend for details.

eTrend.ifsignif

compute effect on trend only if trend in reference series is significant, if FALSE compute always effect on trend (if trend = TRUE)

...

further arguments for the function Trend

Value

The function returns a vector with the following components:

Author(s)

Matthias Forkel <matthias.forkel@geo.tuwien.ac.at> [aut, cre]

References

Gupta, H. V., H. Kling, K. K. Yilmaz, G. F. Martinez (2009): Decomposition of the mean squared error and NSE performance criteria: Implications for improving hydrological modelling. Journal of Hydrology 377, 80-91.

See Also

Trend

Examples

# load a time series of NDVI (normalized difference vegetation index)
data(ndvi)
plot(ndvi)

# change the variance and compute effect
x <- ndvi + rnorm(length(ndvi), 0, 0.01)
plot(x, ndvi); abline(0,1)
KGE(x, ndvi, trend=FALSE)

# change mean and variance and compute effect
x <- ndvi + rnorm(length(ndvi), 0.02, 0.01)
plot(x, ndvi); abline(0,1)
KGE(x, ndvi, trend=FALSE)

# be careful when using trends and breakpoints 
# using trends is howver not part of the original implementation 
# of the Kling-Gupta efficiency
KGE(x, ndvi, trend=TRUE, breaks=0)
KGE(x, ndvi, trend=TRUE, breaks=1)
	

[Package greenbrown version 2.4.3 Index]