Performs the Lilliefors (Kolmogorov-Smirnov) test for the composite hypothesis of normality, see e.g. Thode (2002, Sec. 5.1.1).

1 | ```
LillieTest(x)
``` |

`x` |
a numeric vector of data values, the number of which must be greater than 4. Missing values are allowed. |

The Lilliefors (Kolmogorov-Smirnov) test is an EDF omnibus test for the composite
hypothesis of normality. The test statistic is the maximal absolute difference
between empirical and
hypothetical cumulative distribution function. It may be computed as
*D=\max\{D^{+}, D^{-}\}* with

*
D^{+} = \max_{i=1,…, n}\{i/n - p_{(i)}\},
D^{-} = \max_{i=1,…, n}\{p_{(i)} - (i-1)/n\},
*

where *p_{(i)} = Φ([x_{(i)} - \overline{x}]/s)*. Here,
*Φ* is the cumulative distribution function
of the standard normal distribution, and *\overline{x}* and *s*
are mean and standard deviation of the data values.
The p-value is computed from the Dallal-Wilkinson (1986) formula, which is claimed to
be only reliable when the p-value is smaller than 0.1. If the Dallal-Wilkinson
p-value turns out to be greater than 0.1, then the p-value is computed from the distribution of
the modified statistic *Z=D (√{n}-0.01+0.85/√{n})*, see Stephens (1974),
the actual p-value formula being obtained by a simulation and approximation process.

A list of class `htest`

, containing the following components:

`statistic` |
the value of the Lilliefors (Kolomogorv-Smirnov) statistic. |

`p.value ` |
the p-value for the test. |

`method` |
the character string “Lilliefors (Kolmogorov-Smirnov) normality test”. |

`data.name` |
a character string giving the name(s) of the data. |

The Lilliefors (Kolomorov-Smirnov) test is the most famous EDF omnibus test for normality.
Compared to the Anderson-Darling test and the Cramer-von Mises test it is known to perform worse.
Although the test statistic obtained from `LillieTest(x)`

is the same as that obtained from
`ks.test(x, "pnorm", mean(x), sd(x))`

, it is not correct to use the p-value from the latter
for the composite hypothesis of normality (mean and variance unknown),
since the distribution of the test statistic is different when the parameters are estimated.

The function call `LillieTest(x)`

essentially produces
the same result as the S-PLUS function call `ks.gof(x)`

with the distinction that the p-value is not set to 0.5 when
the Dallal-Wilkinson approximation yields a p-value greater than 0.1. (Actually,
the alternative p-value approximation is provided for the complete range of test statistic values,
but is only used when the Dallal-Wilkinson approximation fails.)

Juergen Gross <gross@statistik.uni-dortmund.de>

Dallal, G.E. and Wilkinson, L. (1986)
An analytic approximation to the distribution of Lilliefors' test for normality.
*The American Statistician*, 40, 294–296.

Stephens, M.A. (1974) EDF statistics for goodness of fit and some comparisons.
*Journal of the American Statistical Association*, 69, 730–737.

Thode Jr., H.C. (2002) *Testing for Normality* Marcel Dekker, New York.

`shapiro.test`

for performing the Shapiro-Wilk test for normality.
`AndersonDarlingTest`

, `CramerVonMisesTest`

,
`PearsonTest`

, `ShapiroFranciaTest`

for performing further tests for normality.
`qqnorm`

for producing a normal quantile-quantile plot.

1 2 | ```
LillieTest(rnorm(100, mean = 5, sd = 3))
LillieTest(runif(100, min = 2, max = 4))
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.