Learn R Programming

ie2misc (version 0.8.6)

madstat: Mean-absolute deviation (MAD)

Description

This function computes the mean-absolute deviation (MAD) -- "the average of the magnitudes of the errors or deviations."

Usage

madstat(observed, na.rm = FALSE)

Arguments

observed

numeric vector, matrix, data.frame, or data.table that contains the observed data points.

na.rm

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

Value

mean-absolute deviation (MAD) as a numeric vector or a named numeric vector if using a named object (matrix, data.frame, or data.table). MAD has the same units as the observed values. 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 madstat(obs, na.rm = TRUE).

Details

MAD is expressed as

$$n^{-1} \sum \limits_{i=1}^n{ \left| O_i - \bar{O} \right|}$$

n

the number of observations

O

the "pairwise-matched observations that are judged to be reliable"

\(\bar{O}\)

the "true" mean of the observations

Reference 1 fully discusses MAD, while Reference 2 provides the formula used to calculate the MAD.

References

  1. Cort J. Willmott, Kenji Matsuura, and Scott M. Robeson, "Ambiguities inherent in sums-of-squares-based error statistics", Atmospheric Environment, vol. 43, no. 3, pp. 749-752, 2009, http://www.sciencedirect.com/science/article/pii/S1352231008009564.

  2. Cort J. Willmott, Scott M. Robeson, and Kenji Matsuura, "Short Communication: A refined index of model performance", International Journal of Climatology, Volume 32, Issue 13, pages 2088-2094, 15 November 2012, https://rmets.onlinelibrary.wiley.com/doi/pdf/10.1002/joc.2419.

  3. Nathabandu T. Kottegoda and Renzo Rosso, Statistics, Probability, and Reliability for Civil and Environmental Engineers, New York City, New York: The McGraw-Hill Companies, Inc., 1997, page 15.

See Also

mad for median absolute deviation (MAD)

mape for mean absolute percent error (MAPE), mae for mean-absolute error (MAE), dr for "index of agreement (dr)", vnse for Nash-Sutcliffe model efficiency (NSE), and rmse for root mean square error (RMSE).

Examples

Run this code
# NOT RUN {
library("ie2misc")
# Example 1.18 from Kottegoda (page 15)
obs <- c(50, 56, 42, 53, 49) # annual rainfall in cm
madstat(obs)


require("stats")
set.seed(100) # makes the example reproducible
obs1 <- rnorm(100) # observed


# using the numeric vector obs1
madstat(obs1)


# using a matrix of the numeric vector obs1
mat1 <- matrix(data = obs1, nrow = length(obs1), ncol = 1, byrow = FALSE,
        dimnames = list(c(rep("", length(obs1))), "Observed"))
madstat(mat1)


# using a data.frame of the numeric vector obs1
df1 <- data.frame(obs1)
madstat(df1)


library("data.table")
# using a data.table of the numeric vector obs1
df2 <- data.table(obs1)
madstat(df2)


# }

Run the code above in your browser using DataLab