mre: Mean relative error (MRE)

mreR Documentation

Mean relative error (MRE)

Description

This function computes the mean relative error (MRE).

Usage

mre(predicted, observed, na.rm = FALSE)

Arguments

predicted

numeric vector that contains the model predicted data points (1st parameters)

observed

numeric vector that contains the observed data points (2nd parameters)

na.rm

logical vector that determines whether the missing values should be removed or not.

Details

(MRE) is expressed as

\frac{1}{N} \sum \limits_{i=1}^N \Bigg | \frac{P_i - O_i}{O_i} \Bigg |

N

the number of observations

P_i

the predicted values

O_i

the observed or reference values

Value

mean relative error (MRE) as a numeric vector using the same units as the given variables. The default choice is that any NA values will be kept (na.rm = FALSE). This can be changed by specifying na.rm = TRUE, such as mre(pre, obs, na.rm = TRUE).

Author(s)

Irucka Embry

References

Huang, J. (2018). "A Simple Accurate Formula for Calculating Saturation Vapor Pressure of Water and Ice", Journal of Applied Meteorology and Climatology, 57(6), 1265-1272. Retrieved Nov 4, 2021, https://journals.ametsoc.org/view/journals/apme/57/6/jamc-d-17-0334.1.xml

See Also

mape for mean absolute percent error (MAPE), madstat for mean-absolute deviation (MAD), dr for 'index of agreement (dr)', vnse for Nash-Sutcliffe model efficiency (NSE), rmse for root mean square error (RMSE), and maxmre for the maximum mean relative error (MAXRE).

Examples


# Example 1

library(iemisc)

obs <- 1:10 # observed
pre <- 2:11 # predicted
mre(pre, obs)




# Example 2

install.load::load_package("iemisc", "rando")

set_n(100) # makes the example reproducible
obs1 <- r_norm(.seed = 873) # observed
pre1 <- r_norm(.seed = 281) # predicted


# using the vectors pre1 and obs1
mre(pre1, obs1)


# using a matrix of the numeric vectors pre1 and obs1
mat1 <- matrix(data = c(obs1, pre1), nrow = length(pre1), ncol = 2,
   byrow = FALSE, dimnames = list(c(rep("", length(pre1))),
   c("Predicted", "Observed")))
mre(mat1[, 2], mat1[, 1])

# mat1[, 1] # observed values from column 1 of mat1
# mat1[, 2] # predicted values from column 2 of mat1


# using a data.frame of the numeric vectors pre1 and obs1
df1 <- data.frame(obs1, pre1)
mre(df1[, 2], df1[, 1])

# df1[, 1] # observed values from column 1 of df1
# df1[, 2] # predicted values from column 2 of df1


library("data.table")

# using a data.table of the numeric vectors pre1 and obs1
df2 <- data.table(obs1, pre1)
mre(df2[, 2, with = FALSE][[1]], df2[, 1, with = FALSE][[1]])

# df2[, 1, with = FALSE][[1]] # observed values from column 1 of df2
# df2[, 2, with = FALSE][[1]] # predicted values from column 2 of df2



iemisc documentation built on Sept. 25, 2023, 5:09 p.m.