# Anderson–Darling test

The Anderson–Darling test is a statistical test of whether a given sample of data is drawn from a given probability distribution. In its basic form, the test assumes that there are no parameters to be estimated in the distribution being tested, in which case the test and its set of critical values is distribution-free. However, the test is most often used in contexts where a family of distributions is being tested, in which case the parameters of that family need to be estimated and account must be taken of this in adjusting either the test-statistic or its critical values. When applied to testing whether a normal distribution adequately describes a set of data, it is one of the most powerful statistical tools for detecting most departures from normality. K-sample Anderson–Darling tests are available for testing whether several collections of observations can be modelled as coming from a single population, where the distribution function does not have to be specified.
In addition to its use as a test of fit for distributions, it can be used in parameter estimation as the basis for a form of minimum distance estimation procedure.
The test is named after Theodore Wilbur Anderson (1918–2016) and Donald A. Darling (1915–2014), who invented it in 1952.

## The single-sample test

The Anderson–Darling and Cramér–von Mises statistics belong to the class of quadratic EDF statistics (tests based on the empirical distribution function). If the hypothesized distribution is $F$, and empirical (sample) cumulative distribution function is $F_{n}$, then the quadratic EDF statistics measure the distance between $F$ and $F_{n}$ by
    $n\int _{-\infty }^{\infty }(F_{n}(x)-F(x))^{2}\,w(x)\,dF(x),$
where $n$ is the number of elements in the sample, and $w(x)$ is a weighting function. When the weighting function is $w(x)=1$, the statistic is the Cramér–von Mises statistic. The Anderson–Darling (1954) test is based on the distance
    $A^{2}=n\int _{-\infty }^{\infty }{\frac {(F_{n}(x)-F(x))^{2}}{F(x)\;(1-F(x))}}\,dF(x),$
which is obtained when the weight function is $w(x)=[F(x)\;(1-F(x))]^{-1}$. Thus, compared with the Cramér–von Mises distance, the Anderson–Darling distance places more weight on observations in the tails of the distribution.

### Basic test statistic

The Anderson–Darling test assesses whether a sample comes from a specified distribution. It makes use of the fact that, when given a hypothesized underlying distribution and assuming the data does arise from this distribution, the cumulative distribution function (CDF) of the data can be transformed to what should follow a uniform distribution. The data can be then tested for uniformity with a distance test (Shapiro 1980). The formula for the test statistic $A$ to assess if data $\{Y_{1}<\cdots <Y_{n}\}$ (note that the data must be put in order) comes from a CDF $F$ is
    $A^{2}=-n-S\,,$
where
    $S=\sum _{i=1}^{n}{\frac {2i-1}{n}}\left[\ln(F(Y_{i}))+\ln \left(1-F(Y_{n+1-i})\right)\right].$
The test statistic can then be compared against the critical values of the theoretical distribution. In this case, no parameters are estimated in relation to the cumulative distribution function $F$.

## Tests for families of distributions

Essentially the same test statistic can be used in the test of fit of a family of distributions, but then it must be compared against the critical values appropriate to that family of theoretical distributions and dependent also on the method used for parameter estimation.

### Test for normality

Empirical testing has found that the Anderson–Darling test is not quite as good as the Shapiro–Wilk test, but is better than other tests. Stephens found $A^{2}$ to be one of the best empirical distribution function statistics for detecting most departures from normality.
The computation differs based on what is known about the distribution:
* Case 0: The mean $\mu$ and the variance $\sigma ^{2}$ are both known.
* Case 1: The variance $\sigma ^{2}$ is known, but the mean $\mu$ is unknown.
* Case 2: The mean $\mu$ is known, but the variance $\sigma ^{2}$ is unknown.
* Case 3: Both the mean $\mu$ and the variance $\sigma ^{2}$ are unknown.
The n observations, $X_{i}$, for $i=1,\ldots n$, of the variable $X$ must be sorted such that $X_{1}\leq X_{2}\leq ...\leq X_{n}$ and the notation in the following assumes that X$_i$ represent the ordered observations. Let
    ${\hat {\mu }}={\begin{cases}\mu ,&{\text{if the mean is known.}}\\{\bar {X}}={\frac {1}{n}}\sum _{i=1}^{n}X_{i},&{\text{otherwise.}}\end{cases}}$
    ${\hat {\sigma }}^{2}={\begin{cases}\sigma ^{2},&{\text{if the variance is known.}}\\{\frac {1}{n}}\sum _{i=1}^{n}(X_{i}-\mu )^{2},&{\text{if the variance is not known, but the mean is.}}\\{\frac {1}{n-1}}\sum _{i=1}^{n}(X_{i}-{\bar {X}})^{2},&{\text{otherwise.}}\end{cases}}$
The values $X_{i}$ are standardized to create new values $Y_{i}$, given by
    $Y_{i}={\frac {X_{i}-{\hat {\mu }}}{\hat {\sigma }}}.$
With the standard normal CDF $\Phi$, $A^{2}$ is calculated using
    $A^{2}=-n-{\frac {1}{n}}\sum _{i=1}^{n}(2i-1)(\ln \Phi (Y_{i})+\ln(1-\Phi (Y_{n+1-i}))).$
An alternative expression in which only a single observation is dealt with at each step of the summation is:
    $A^{2}=-n-{\frac {1}{n}}\sum _{i=1}^{n}\left[(2i-1)\ln \Phi (Y_{i})+(2(n-i)+1)\ln(1-\Phi (Y_{i}))\right].$
A modified statistic can be calculated using
    $A^{*2}={\begin{cases}A^{2}\left(1+{\frac {4}{n}}-{\frac {25}{n^{2}}}\right),&{\text{if the variance and the mean are both unknown.}}\\A^{2},&{\text{otherwise.}}\end{cases}}$
If $A^{2}$ or $A^{*2}$ exceeds a given critical value, then the hypothesis of normality is rejected with some significance level. The critical values are given in the table below for values of $A^{*2}$.
Note 1: If ${\hat {\sigma }}$ = 0 or any $\Phi (Y_{i})=$(0 or 1) then $A^{2}$ cannot be calculated and is undefined.
Note 2: The above adjustment formula is taken from Shorack & Wellner (1986, p239). Care is required in comparisons across different sources as often the specific adjustment formula is not stated.
Note 3: Stephens notes that the test becomes better when the parameters are computed from the data, even if they are known.
Note 4: Marsaglia & Marsaglia provide a more accurate result for Case 0 at 85% and 99%.
| Case | n | 15% | 10% | 5% | 2.5% | 1% |
| 0 | ≥ 5 | 1.621 | 1.933 | 2.492 | 3.070 | 3.878 |
| 1 | | | 0.908 | 1.105 | 1.304 | 1.573 |
| 2 | ≥ 5 | | 1.760 | 2.323 | 2.904 | 3.690 |
| 3 | 10 | 0.514 | 0.578 | 0.683 | 0.779 | 0.926 |
| | 20 | 0.528 | 0.591 | 0.704 | 0.815 | 0.969 |
| | 50 | 0.546 | 0.616 | 0.735 | 0.861 | 1.021 |
| | 100 | 0.559 | 0.631 | 0.754 | 0.884 | 1.047 |
| | $\infty$ | 0.576 | 0.656 | 0.787 | 0.918 | 1.092 |
Alternatively, for case 3 above (both mean and variance unknown), D'Agostino (1986) in Table 4.7 on p. 123 and on pages 372–373 gives the adjusted statistic:
    $A^{*2}=A^{2}\left(1+{\frac {0.75}{n}}+{\frac {2.25}{n^{2}}}\right).$
and normality is rejected if $A^{*2}$ exceeds 0.631, 0.754, 0.884, 1.047, or 1.159 at 10%, 5%, 2.5%, 1%, and 0.5% significance levels, respectively; the procedure is valid for sample size at least n=8. The formulas for computing the p-values for other values of $A^{*2}$ are given in Table 4.9 on p. 127 in the same book.

### Tests for other distributions

Above, it was assumed that the variable $X_{i}$ was being tested for normal distribution. Any other family of distributions can be tested but the test for each family is implemented by using a different modification of the basic test statistic and this is referred to critical values specific to that family of distributions. The modifications of the statistic and tables of critical values are given by Stephens (1986) for the exponential, extreme-value, Weibull, gamma, logistic, Cauchy, and von Mises distributions. Tests for the (two-parameter) log-normal distribution can be implemented by transforming the data using a logarithm and using the above test for normality. Details for the required modifications to the test statistic and for the critical values for the normal distribution and the exponential distribution have been published by Pearson & Hartley (1972, Table 54). Details for these distributions, with the addition of the Gumbel distribution, are also given by Shorack & Wellner (1986, p239). Details for the logistic distribution are given by Stephens (1979). A test for the (two parameter) Weibull distribution can be obtained by making use of the fact that the logarithm of a Weibull variate has a Gumbel distribution.

## Non-parametric k-sample tests

Fritz Scholz and Michael A. Stephens (1987) discuss a test, based on the Anderson–Darling measure of agreement between distributions, for whether a number of random samples with possibly different sample sizes may have arisen from the same distribution, where this distribution is unspecified. The R package kSamples and the Python package Scipy implements this rank test for comparing k samples among several other such rank tests.
For $k$ samples the statistic can be computed as follows under the assumption that the distribution function $F_{i}$ of $i$-th sample is continuous
    $A_{kN}^{2}={\frac {1}{N}}\sum _{i=1}^{k}{\frac {1}{n_{i}}}\sum _{j=1}^{N-1}{\frac {(NM_{ij}-jn_{i})^{2}}{j(N-j)}}$
where
* $n_{i}$ is the number of observations in the $i$-th sample
* $N$ is the total number of observations in all samples
* $Z_{1}<\cdots <Z_{N}$ is the pooled ordered sample
* $M_{ij}$ is the number of observations in the $i$-th sample that are not greater than $Z_{j}$.