br2 {hydroGOF} | R Documentation |

Coefficient of determination (r2) multiplied by the slope of the regression line between `sim`

and `obs`

, with treatment of missing values.

br2(sim, obs, ...) ## Default S3 method: br2(sim, obs, na.rm=TRUE, ...) ## S3 method for class 'data.frame' br2(sim, obs, na.rm=TRUE, ...) ## S3 method for class 'matrix' br2(sim, obs, na.rm=TRUE, ...) ## S3 method for class 'zoo' br2(sim, obs, na.rm=TRUE, ...)

`sim` |
numeric, zoo, matrix or data.frame with simulated values |

`obs` |
numeric, zoo, matrix or data.frame with observed values |

`na.rm` |
a logical value indicating whether 'NA' should be stripped before the computation proceeds. |

`...` |
further arguments passed to or from other methods. |

*
br2 = abs(b)*R2, abs(b) <= 1; br2= R2/abs(b), abs(b) > 1 *

A model that systematically over or under-predicts all the time will still result in "good" `r2`

(close to 1), even if all predictions were wrong (Krause et al., 2005).
The `br2`

coefficient allows accounting for the discrepancy in the magnitude of two signals (depicted by 'b') as well as their dynamics (depicted by `r2`

)

br2 between `sim`

and `obs`

.

If `sim`

and `obs`

are matrixes, the returned value is a vector, with the `br2`

between each column of `sim`

and `obs`

.

`obs`

and `sim`

has to have the same length/dimension

The missing values in `obs`

and `sim`

are removed before the computation proceeds, and only those positions with non-missing values in `obs`

and `sim`

are considered in the computation

The slope `b`

is computed as the coefficient of the linear regression between `sim`

and `obs`

, forcing the intercept be equal to zero.

Mauricio Zambrano Bigiarini <mzb.devel@gmail.com>

Krause, P., Boyle, D. P., and Base, F.: Comparison of different efficiency criteria for hydrological model assessment, Adv. Geosci., 5, 89-97, 2005

# Looking at the difference between r2 and br2 for a case with systematic # over-prediction of observed values obs <- 1:10 sim1 <- 2*obs + 5 sim2 <- 2*obs + 25 # The coefficient of determination is equal to 1 even if there is no one single # simulated value equal to its corresponding observed counterpart r2 <- (cor(sim1, obs, method="pearson"))^2 # r2=1 # 'br2' effectively penalises the systematic over-estimation br2(sim1, obs) # br2 = 0.3684211 br2(sim2, obs) # br2 = 0.1794872 ggof(sim1, obs) ggof(sim2, obs) # Computing 'br2' without forcing the intercept be equal to zero br2.2 <- r2/2 # br2 = 0.5 ################## # Loading daily streamflows of the Ega River (Spain), from 1961 to 1970 data(EgaEnEstellaQts) obs <- EgaEnEstellaQts # Generating a simulated daily time series, initially equal to the observed series sim <- obs # Computing 'br2' for the "best" (unattainable) case br2(sim=sim, obs=obs) # Randomly changing the first 2000 elements of 'sim', by using a normal distribution # with mean 10 and standard deviation equal to 1 (default of 'rnorm'). sim[1:2000] <- obs[1:2000] + rnorm(2000, mean=10) # Computing the new 'br2' br2(sim=sim, obs=obs)

[Package *hydroGOF* version 0.3-10 Index]