# NAG CL Interfaceg07dac (robust_​1var_​median)

## 1Purpose

g07dac finds the median, median absolute deviation, and a robust estimate of the standard deviation for a set of ungrouped data.

## 2Specification

 #include
 void g07dac (Integer n, const double x[], double y[], double *xme, double *xmd, double *xsd, NagError *fail)
The function may be called by the names: g07dac, nag_univar_robust_1var_median or nag_median_1var.

## 3Description

The data consists of a sample of size $n$, denoted by ${x}_{1},{x}_{2},\dots ,{x}_{n}$, drawn from a random variable $X$. g07dac first computes the median
 $θ med = med i x i$
and from this the median absolute deviation can be computed,
 $σ med = med i x i - θ med .$
Finally, a robust estimate of the standard deviation is computed,
 $σ med ′ = σ med / Φ -1 0.75$
where ${\Phi }^{-1}\left(0.75\right)$ is the value of the inverse standard Normal function at the point $0.75$. g07dac is based upon the algorithm used in the function LTMDDV in the ROBETH library, see Marazzi (1987).
Huber P J (1981) Robust Statistics Wiley
Marazzi A (1987) Subroutines for robust and bounded influence regression in ROBETH Cah. Rech. Doc. IUMSP, No. 3 ROB 2 Institut Universitaire de Médecine Sociale et Préventive, Lausanne

## 5Arguments

1: $\mathbf{n}$Integer Input
On entry: the number of observations, $n$.
Constraint: ${\mathbf{n}}>1$.
2: $\mathbf{x}\left[{\mathbf{n}}\right]$const double Input
On entry: the vector of observations, ${x}_{1},{x}_{2},\dots ,{x}_{n}$.
3: $\mathbf{y}\left[{\mathbf{n}}\right]$double Output
On exit: the observations sorted into ascending order.
4: $\mathbf{xme}$double * Output
On exit: the median, ${\theta }_{\mathrm{med}}$.
5: $\mathbf{xmd}$double * Output
On exit: the median absolute deviation, ${\sigma }_{\mathrm{med}}$.
6: $\mathbf{xsd}$double * Output
On exit: the robust estimate of the standard deviation, ${\sigma }_{\mathrm{med}}^{\prime }$.
7: $\mathbf{fail}$NagError * Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).

## 6Error Indicators and Warnings

NE_INT_ARG_GT
On entry, ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{n}}\le 〈\mathit{\text{value}}〉$.
NE_INT_ARG_LE
On entry, ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{n}}>1$.

## 7Accuracy

The computations are believed to be stable.

## 8Parallelism and Performance

g07dac is not threaded in any implementation.

g07dac may be called with the same actual array supplied for arguments x and y, in which case the sorted data values will overwrite the original contents of x.

## 10Example

The following program reads in a set of data consisting of eleven observations of a variable x. The median, median absolute deviation and a robust estimate of the standard deviation are calculated and printed along with the sorted data in output array y.

### 10.1Program Text

Program Text (g07dace.c)

### 10.2Program Data

Program Data (g07dace.d)

### 10.3Program Results

Program Results (g07dace.r)