PearsonTest
Pearson ChiSquare Test for Normality
Performs the Pearson chisquare test for the composite hypothesis of normality.
 Keywords
 htest
Usage
PearsonTest(x, n.classes = ceiling(2 * (n^(2/5))), adjust = TRUE)
Arguments
 x
 a numeric vector of data values. Missing values are allowed.
 n.classes
 The number of classes. The default is due to Moore (1986).
 adjust
 logical; if
TRUE
(default), the pvalue is computed from a chisquare distribution withn.classes
3 degrees of freedom, otherwise from a chisquare distribution withn.classes
1 degrees of freedom.
Details
The Pearson test statistic is $P=\sum (C_{i}  E_{i})^{2}/E_{i}$,
where $C_{i}$ is the number of counted and $E_{i}$ is the number of expected observations
(under the hypothesis) in class $i$. The classes are build is such a way that they are equiprobable under the hypothesis
of normality. The pvalue is computed from a chisquare distribution with n.classes
3 degrees of freedom
if adjust
is TRUE
and from a chisquare distribution with n.classes
1
degrees of freedom otherwise. In both cases this is not (!) the correct pvalue,
lying somewhere between the two, see also Moore (1986).
Value

A list of class
htest
, containing the following components:Note
The Pearson chisquare test is usually not recommended for testing the composite hypothesis of normality
due to its inferior power properties compared to other tests. It is common practice to compute the pvalue
from the chisquare distribution with n.classes
 3 degrees of freedom, in order to adjust for the
additional estimation of two parameters. (For the simple hypothesis of normality (mean and variance known)
the test statistic is asymptotically chisquare distributed with
n.classes
 1 degrees of freedom.)
This is, however, not correct as long as the parameters are estimated by mean(x)
and var(x)
(or sd(x)
), as it is usually done, see Moore (1986) for details.
Since the true pvalue is somewhere between the two, it is suggested to run PearsonTest
twice, with
adjust = TRUE
(default) and with adjust = FALSE
.
It is also suggested to slightly change the default number of classes, in order
to see the effect on the pvalue. Eventually, it is suggested not to rely upon the result of the test.
The function call PearsonTest(x)
essentially produces
the same result as the SPLUS function call chisq.gof((xmean(x))/sqrt(var(x)), n.param.est=2)
.
References
Moore, D.S., (1986) Tests of the chisquared type. In: D'Agostino, R.B. and Stephens, M.A., eds.: GoodnessofFit Techniques. Marcel Dekker, New York.
Thode Jr., H.C., (2002) Testing for Normality. Marcel Dekker, New York. Sec. 5.2
See Also
shapiro.test
for performing the ShapiroWilk test for normality.
AndersonDarlingTest
, CramerVonMisesTest
,
LillieTest
, ShapiroFranciaTest
for performing further tests for normality.
qqnorm
for producing a normal quantilequantile plot.
Examples
PearsonTest(rnorm(100, mean = 5, sd = 3))
PearsonTest(runif(100, min = 2, max = 4))