mad                   package:base                   R Documentation

_M_e_d_i_a_n _A_b_s_o_l_u_t_e _D_e_v_i_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Compute the median absolute deviation, i.e., the (lo-/hi-) median
     of the absolute deviations from the median, and (by default)
     adjust by a factor for asymptotically normal consistency.

_U_s_a_g_e:

     mad(x, center = median(x), constant = 1.4826, na.rm = FALSE,
         low = FALSE, high = FALSE)

_A_r_g_u_m_e_n_t_s:

       x: a numeric vector.

  center: Optionally, the centre: defauls to the median.

constant: scale factor.

   na.rm: if `TRUE' then `NA' values are stripped from `x' before
          computation takes place.

     low: if `TRUE', compute the ``lo-median'', i.e., for even sample
          size, do not average the two middle values, but take the
          smaller one.

    high: if `TRUE', compute the ``hi-median'', i.e. take the larger of
          the two middle values for even sample size.

_D_e_t_a_i_l_s:

     The actual value calculated is `constant * cMedian(abs(x -
     center))' with the default value of `center' being `median(x)',
     and `cMedian' being the usual, the ``low'' or ``high'' median, see
     the arguments description for `low' and `high' above.

     The default `constant = 1.4826' (approximately 1/ Phi^(-1)(3/4) =
     `1/qnorm(3/4)') ensures consistency, i.e.,

                     E[mad(X_1,...,X_n)] = sigma

     for X_i distributed as N(mu,sigma^2) and large n.

     If `na.rm' is `TRUE' then `NA' values are stripped from `x' before
     computation takes place. If this is not done then an `NA' value in
     `x' will cause `mad' to return `NA'.

_S_e_e _A_l_s_o:

     `IQR' which is simpler but less robust, `median', `var'.

_E_x_a_m_p_l_e_s:

     mad(c(1:9))
     print(mad(c(1:9),     constant=1)) ==
           mad(c(1:8,100), constant=1)       # = 2 ; TRUE
     x <- c(1,2,3, 5,7,8)
     sort(abs(x - median(x)))
     c(mad(x, co=1), mad(x, co=1, lo = TRUE), mad(x, co=1, hi = TRUE))

