# Is there any test for a null hypothesis of non-normality?

I'm currently looking for a test having for null hypothesis that the sample does not come from observing a normally distributed random variable. In other words, I'd like to know if there's a test that's opposite to the K-S, Anderson-Darling, Shapiro-Wilk or Jarque-Bera.

## 3 Answers

I think the question is the same whether normality is the null hypothesis or the alternative. the test is a measure of goodness of fit. If the test is based on the traditional approach then you look for how large the test statistic should be to reject normality. If the you make normality the alternative then you are asking how small this statistic needs to be to say the distribution is close enough to normal.

I have not seen this done but it is very much akin to equivalence testing which is done a lot in the pharmaceutical industry. For equivalence testing you want to show that your drug perform similarly to the competitor drug. This is often done when trying to find a generic replacement for a marketed drug. You define a small distance from 0 that you call the window of equivalence and you reject the null hypothesis when you have high confidence that the true mean difference in the performance measure is within the window of equivalence. The method is well defined in Bill Blackwelder's paper "Proving the Null Hypothesis." The test statistics are the same or similar it is just executed differently. For example instead of using a two-tailed t test to show that the mean difference is different from 0, you do two one-sided t tests where you need to reject both to claim equivalence. The sample size is determined such that the power of rejecting nonequivalence when the actual mean differnce is less than some specified small value.

I think that a test to reject nonnormality could be posed in the same way.

• Michael gives a good answer, but you will have problems akin to those for testing normality. When you are testing the equivalence of two means, it is easy to give an exact definition of what you are testing for. When you are testing normality (or non-normality) it can be trickier. Aug 17, 2012 at 20:16
• I think that testing for a null hypothesis that the data is not normal vs an alternative that it is means using a criteria for closeness to normality like is done with the chi-square goodness of fit test or the various tests that compare the empirical cdf such as the Kolmogorov-Smirnov test. It is not the same as simply applying the test in the standard way because the null and alternatives are reversed. Of course in practice this has the same problems as a traditional hypothesis problem in that data really never follow a particular distribution exactly. Aug 18, 2012 at 11:51
• So you need to say how close is close enough. Aug 18, 2012 at 11:51
• Certainly you need to say how close is close enough; but with the case of comparing means it is very clear how closeness is measured. With tests of normality, it may be less so. What if different tests of normality give different answers? Aug 18, 2012 at 16:44
• @PeterFlom different tests can always give different answers particularly in borderline cases. The K-S test uses the maximum distance between cdfs for example Aug 18, 2012 at 16:53

I think the problem is not well defined! You want to proove the data "do not come from a normal distribution". That is easy, accept! NO data "comes from a normal distribution", the normal distribution is at best an approximation.

But you could, of course, have goodness-of-fit tests for other distributions, say the Poisson. I don't know if there is a lot published, but what you can do, is to make a qq-plot for the choosen distribution. For the Poisson case, what you can doo is (R code):

dat <- rpois(200,10)
p <-    qpois(ppoints(200), 10)
qqplot(p,dat)


and a test statistic could be the correlation in the qqplot: cor(p,sort(dat))

Now you can find the null distribution of this statistic by simulation:

cors <- vector(mode="numeric", length=1000)
for (i in 1:1000) {
cors[i] <- cor(qpois(ppoints(200), 10), sort(rpois(200, 10))
}
hist(cors)


In practice, you will presumably estimate the poisson mean, so you must redo the simulation incorporating estimation of the mean. You will also probably want to increase the number of simulated samples from 1000!

The simulation incorporating estimation of the mean could be:

NSIM <- 1000
SAMPSIZE <- 200
MEAN <- 10
cors <- vector(mode="numeric", length=NSIM)
for (i in 1:NSIM) {
samp <- rpois(SAMPSIZE, MEAN)
m <- mean(samp)
cors[i] <- cor(qpois(ppoints(SAMPSIZE), m), sort(samp))
}
hist(cors)


The answer is Chi square Goodness of fit test for normal distribution

Here you can see the example http://www.stat.yale.edu/Courses/1997-98/101/chigf.htm
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 1, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.6231692433357239, "perplexity": 595.7821666697961}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": false}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2022-27/segments/1656104655865.86/warc/CC-MAIN-20220705235755-20220706025755-00072.warc.gz"}