SciPy

scipy.stats.shapiro

scipy.stats.shapiro(x)[source]

Perform the Shapiro-Wilk test for normality.

The Shapiro-Wilk test tests the null hypothesis that the data was drawn from a normal distribution.

Parameters:
x : array_like

Array of sample data.

Returns:
W : float

The test statistic.

p-value : float

The p-value for the hypothesis test.

See also

anderson
The Anderson-Darling test for normality
kstest
The Kolmogorov-Smirnov test for goodness of fit.

Notes

The algorithm used is described in [4] but censoring parameters as described are not implemented. For N > 5000 the W test statistic is accurate but the p-value may not be.

The chance of rejecting the null hypothesis when it is true is close to 5% regardless of sample size.

References

[1]https://www.itl.nist.gov/div898/handbook/prc/section2/prc213.htm
[2]Shapiro, S. S. & Wilk, M.B (1965). An analysis of variance test for normality (complete samples), Biometrika, Vol. 52, pp. 591-611.
[3]Razali, N. M. & Wah, Y. B. (2011) Power comparisons of Shapiro-Wilk, Kolmogorov-Smirnov, Lilliefors and Anderson-Darling tests, Journal of Statistical Modeling and Analytics, Vol. 2, pp. 21-33.
[4](1, 2) ALGORITHM AS R94 APPL. STATIST. (1995) VOL. 44, NO. 4.

Examples

>>> from scipy import stats
>>> np.random.seed(12345678)
>>> x = stats.norm.rvs(loc=5, scale=3, size=100)
>>> stats.shapiro(x)
(0.9772805571556091, 0.08144091814756393)

Previous topic

scipy.stats.levene

Next topic

scipy.stats.anderson