madstat: Mean-absolute deviation (MAD)

madstatR Documentation

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.

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.

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).

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, https://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, article from ResearchGate: https://www.researchgate.net/publication/235961403_A_refined_index_of_model_performance.

  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


library("ie2misc")

# Example 1.18 from Kottegoda (page 15)
obs <- c(50, 56, 42, 53, 49) # annual rainfall in cm
madstat(obs)


library("rando")

set_n(100) # makes the example reproducible
obs1 <- r_norm(.seed = 300) # 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)



ie2misc documentation built on Sept. 20, 2023, 9:08 a.m.