I am trying to understand and implement Anderson-Darling test for normal distribution in C++. I've found Octave/Matlab implementation of Anderson-Darling test here, but the critical values differ from values listed at wikipedia.

Authors of mentioned source code had made some kind of adjustment, before they tested the hypothesis. I would like to know for what is this adjustment good for, why is it made?


1 Answer 1


The Anderson-Darling test is a test for a fully specified distribution.

If you use it as a test for normality (without a prespecified mean and variance), the distribution based on estimated parameters will (almost always) be closer to the data than the true distribution, so tabulated critical values will be too large, resulting in a lower than nominal significance level and lowered power.

The correct distribution of the test statistic under the null needs to take account of this estimation.

This is similar to the relationship between the Kolmogorov-Smirnov and Lilliefors test.

In the case of the A-D, this can be done approximately by an adjustment, as discussed for example in the book Goodness-of-fit Techinques, D'Agostino and Stephens, eds.

The comments in the code you link to not only explicitly discuss this issue (though not especially clearly) -- they also mention the same reference.

It is also discussed in the first paragraph of the Wikipedia link on the Anderson-Darling statistic:

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.