pbias {hydroGOF}R Documentation

Percent Bias


Percent Bias between sim and obs, with treatment of missing values.


pbias(sim, obs, ...)

## Default S3 method:
pbias(sim, obs, na.rm=TRUE, ...)

## S3 method for class 'data.frame'
pbias(sim, obs, na.rm=TRUE, ...)

## S3 method for class 'matrix'
pbias(sim, obs, na.rm=TRUE, ...)

## S3 method for class 'zoo'
pbias(sim, obs, na.rm=TRUE, ...)



numeric, zoo, matrix or data.frame with simulated values


numeric, zoo, matrix or data.frame with observed values


a logical value indicating whether 'NA' should be stripped before the computation proceeds.
When an 'NA' value is found at the i-th position in obs OR sim, the i-th value of obs AND sim are removed before the computation.


further arguments passed to or from other methods.


PBIAS = 100 * [ sum( sim - obs ) / sum( obs ) ]

Percent bias (PBIAS) measures the average tendency of the simulated values to be larger or smaller than their observed ones.

The optimal value of PBIAS is 0.0, with low-magnitude values indicating accurate model simulation. Positive values indicate overestimation bias, whereas negative values indicate model underestimation bias


Percent bias between sim and obs. The result is given in percentage (%)

If sim and obs are matrixes, the returned value is a vector, with the percent bias 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


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


Yapo P. O., Gupta H. V., Sorooshian S., 1996. Automatic calibration of conceptual rainfall-runoff models: sensitivity to calibration data. Journal of Hydrology. v181 i1-4. 23-48

Sorooshian, S., Q. Duan, and V. K. Gupta. 1993. Calibration of rainfall-runoff models: Application of global optimization to the Sacramento Soil Moisture Accounting Model, Water Resources Research, 29 (4), 1185-1194, doi:10.1029/92WR02617.

See Also

gof, ggof


obs <- 1:10
sim <- 1:10
pbias(sim, obs)

obs <- 1:10
sim <- 2:11
pbias(sim, obs)

# Loading daily streamflows of the Ega River (Spain), from 1961 to 1970
obs <- EgaEnEstellaQts

# Generating a simulated daily time series, initially equal to the observed series
sim <- obs 

# Computing the 'pbias' for the "best" case
pbias(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 'pbias'
pbias(sim=sim, obs=obs)

[Package hydroGOF version 0.3-10 Index]