Mean-absolute deviation (MAD)

Description

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

Usage

1
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} ∑ \limits_{i=1}^n{ ≤ft| 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).

Source

kurtosis for use of na.rm for numeric vector, matrix, and data.frame objects

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, http://onlinelibrary.wiley.com/doi/10.1002/joc.2419/pdf.

  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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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)


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