I' conducting a Normality Test for a numerical variable (level of a substance in blood) in a sample of 368 subjects.
As I will need to run analysis of covariance (ANCOVA) and partial correlations, I find myself a little bit in doubt with this result. According to the p value of the Kolmogorov-Smirnov (0.200), my variable has a normal distibution (while according for Shapiro-Wilk it hasn't). Anyway, I'm wondering what "This is a lower bound of true significance" means, referring to the p = 0.200. Should I care about it? To note, histogram, skewness and kurtosis suggest a normal distribution of the data. Outliers have been excluded with the z score method (>3). If I transform the values in log10, the distribution results non/normal.

Thank you in advance for your replies!

  • 1
    $\begingroup$ Part of this is a FAQ: ANOVA does not care how your response variable is distributed. Thus, although your question about "lower bound" has a (simple) answer, it might not be helpful to you. $\endgroup$
    – whuber
    Dec 4, 2018 at 17:40
  • 3
    $\begingroup$ In addition "According to the p value of the Kolmogorov-Smirnov (0.200), my variable has a normal distibution" is not a correct interpretation of a failure to reject the null". $\endgroup$
    – Glen_b
    Dec 5, 2018 at 12:23
  • $\begingroup$ Make sure that you understand the meaning of p-values. A non-significant p-value doesn't tell you that the null hypothesis is true. It tells you that you have failed to find evidence that it is false. It's still probably false. $\endgroup$ Aug 29, 2021 at 3:32

2 Answers 2


The Kolmogorov-Smirnov test is a test of the null hypothesis that your data come from some prespecified distribution, $F$. Coming from a Normal distribution is a much wider null hypothesis; there are lots of Normal distributions.

At one time it was common to find the best-fitting Normal distribution to your data (by estimating the mean and variance from the data), then pretend that was a prespecified distribution and do a Kolmogorov-Smirnov test. It's pretty clear that you will be less likely to reject the null that way -- the fitted normal distribution will fit your data better, because it has been fitted to your data. So, if you take the test statistic $D$ and your observed value $d$, and calculate the $p$-value $P(D\geq d)$ as if you had a prespecified distribution, the number you get will be too large. It will be larger than the true $P(D>d) for the testing procedure you actually used.

Lilliefors's test fixes this up. It uses the same test statistic $D$ (the maximum vertical difference between cumulative distribution functions), but it calculates the null distribution of $D$ taking account that you have estimated the mean and variance from the same data. How does it do that? By brute-force simulation. Someone (Hubert Lilliefors, or perhaps his research assistants) generated lots of sets of data from Normal distributions, did the KS test on each set, and made a big table of the null sampling distribution. They did this in 1967 when it was a big deal; you could do the same thing in a few minutes now with R but we've gotten used to using the stored tables.


It is a lower bound. For example, 2 minutes ago, I noticed that we can test normality with lillie.test() function in R software. Then, I used my normal distributed data to get K-S and Shapiro-Wilk test results. I had the statistics from SPSS. Shapiro-Wilk stats were same. But K-S test results were different. R said that p value of K-S was 0.178 and SPSS said that p value of K-S was 0.200 (and This is a lower bound of true significance). I got that my data is normal. It's still normal but SPSS gave us a lower bound.


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.