PearsonTest {DescTools} | R Documentation |

## Pearson Chi-Square Test for Normality

### Description

Performs the Pearson chi-square test for the composite hypothesis of normality.

### 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 |

### 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 p-value is computed from a chi-square distribution with `n.classes`

-3 degrees of freedom
if `adjust`

is `TRUE`

and from a chi-square distribution with `n.classes`

-1
degrees of freedom otherwise. In both cases this is not (!) the correct p-value,
lying somewhere between the two, see also Moore (1986).

### Value

A list of class `htest`

, containing the following components:

`statistic` |
the value of the Pearson chi-square statistic. |

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

`method` |
the character string “Pearson chi-square normality test”. |

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

`n.classes` |
the number of classes used for the test. |

`df` |
the degress of freedom of the chi-square distribution used to compute the p-value. |

### Note

The Pearson chi-square 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 p-value
from the chi-square 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 chi-square 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 p-value 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 p-value. 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 S-PLUS function call `chisq.gof((x-mean(x))/sqrt(var(x)), n.param.est=2)`

.

### Author(s)

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

### References

Moore, D.S., (1986) Tests of the chi-squared type. In:
D'Agostino, R.B. and Stephens, M.A., eds.: *Goodness-of-Fit 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 Shapiro-Wilk test for normality.
`AndersonDarlingTest`

, `CramerVonMisesTest`

,
`LillieTest`

, `ShapiroFranciaTest`

for performing further tests for normality.
`qqnorm`

for producing a normal quantile-quantile plot.

### Examples

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

*DescTools*version 0.99.55 Index]