When the population mean and standard deviation are known we can use the one sample Kolmogorov-Smirnov test to test for normality, as described in Kolmogorov-Smirnov Test for Normality.

However, when the population mean and standard deviation are not known, but instead are estimated from the sample data, then the usual Kolmogorov-Smirnov test based on the critical values in the Kolmogorov-Smirnov Table yields results that are too conservative. Lilliefors created a related test that gives more accurate results in this case (see Lilliefors Test Table).

The Lilliefors Test uses the same calculations as the Kolmogorov-Smirnov Test, but the table of critical values in the Lilliefors Test Table is used instead of the Kolmogorov-Smirnov Table. Since the critical values in this table are smaller, the Lilliefors Test is less likely to show that data is normally distributed.

**Example 1**: Repeat Examples 1 and 2 of the Kolmogorov-Smirnov Test for Normality using the Lilliefors Test.

For Example 1 of Kolmogorov-Smirnov Test for Normality, using the Lilliefors Test Table, we have

Since *D _{n}* = 0.0117 < 0.0283 =

*D*, once again we conclude that the data is a good fit with the normal distribution. (Note that the critical value of .0283 is smaller than the critical value of .043 from the KS Test.)

_{n,α}For Example 2 of Kolmogorov-Smirnov Test for Normality, using the Lilliefors Test Table with *n* = 15 and *α* = .05, we find that *D _{n}* = 0.1875 < 0.2196 =

*D*, which confirms that the data is normally distributed.

_{n,α}**Real Statistics Functions**: The following functions are provided in the Real Statistics Resource Pack to automate the table lookup:

**LCRIT**(*n, α, tails, h*) = the critical value of the Lilliefors test for a sample of size *n*, for the given value of alpha (default .05) and *tails* = 1 (one tail) or 2 (two tails, default) based on the Lilliefors Test Table. If *h* = TRUE (default) harmonic interpolation is used; otherwise linear interpolation is used.

**LPROB**(*x, n, tails, iter, h*) = an approximate p-value for the Lilliefors test for the *D _{n}* value equal to

*x*for a sample of size

*n*and

*tails*= 1 (one tail) or 2 (two tails, default) based on a linear interpolation (if

*h*= FALSE) or harmonic interpolation (if

*h*= TRUE, default) of the critical values in the Lilliefors Test Table, using

*iter*number of iterations (default = 40).

Note that the values for *α* in the table in the Lilliefors Test Table range from .01 to .2 (for *tails* = 2) and .005 to .1 for *tails* = 1. If the p-value is less than .01 (*tails* = 2) or .005 (*tails* = 1) then the p-value is given as 0 and if the p-value is greater than .2 (*tails* = 2) or .1 (*tails* = 1) then the p-value is given as 1.

For Example 2 of Kolmogorov-Smirnov Test for Normality, *D _{n,α }*= LCRIT(15, .05, 2) = .2196 > .184 =

*D*and p-value = LPROB(0.184, 15) = .182858 > .05 =

_{n}*α*, and so once again we can’t reject the null hypothesis that the data is normally distributed.

**Lilliefors Distribution**

Especially for values of *α* not found in the Lilliefors Test Table, we can use an approximation to the Lilliefors distribution. Click here for more information about this distribution, including some useful functions provided by the Real Statistics Resource Pack.

Of the many tests regimes there are for tests for normality. Is there a list illustrating the order of preference for the test method according to the type of data you have?

I mean which test should I use for what type of data? It seems to be so easy to fudge a result as necessary according to the test method.

Keith,

In general, I believe that the Shapiro-Wilk test is the best one to use. If you have a number of ties, then d’Agostino-Pearson is probably better.

Charles

Hey Charles,

If I’m not mistaken, Dn from the Kolmogorov-Smirnov Test for Normality page should be Dn = 0.1875, not Dn = 0.184.

Thanks.

David,

Yes you are correct. Thanks for catching this mistake. I really appreciate your helping in improving the Real statistics website.

Charles

For LCRIT, I can’t seem to get a value if n > 50. What am I doing wrong?

Mark,

I am not sure what you are doing wrong, but I just tried to use =LCRIT(60), and I got the value .114113. What version of Real Statistics are you using? You can find this out by entering the formula =VER()

Charles

Charles

I am using 4.14 2010.

When I use Excel 2013 with the corresponding Real Statistics version, it works OK.

I don’t like Excel 2013, so I guess this a cost of that attitude.

Charles

Problem solved – I installed version 5.2 for Excel 2010 and LCRIT works for a sample size of 300.

Mark

Mark,

Good to hear.

Charles