astropy.stats.rayleightest(data, axis=None, weights=None)[source]#

Performs the Rayleigh test of uniformity.

This test is used to identify a non-uniform distribution, i.e. it is designed for detecting an unimodal deviation from uniformity. More precisely, it assumes the following hypotheses: - H0 (null hypothesis): The population is distributed uniformly around the circle. - H1 (alternative hypothesis): The population is not distributed uniformly around the circle. Small p-values suggest to reject the null hypothesis.

datandarray or Quantity

Array of circular (directional) data, which is assumed to be in radians whenever data is numpy.ndarray.

axisint, optional

Axis along which the Rayleigh test will be performed.

weightsnumpy.ndarray, optional

In case of grouped data, the i-th element of weights represents a weighting factor for each group such that np.sum(weights, axis) equals the number of observations. See [1], remark 1.4, page 22, for detailed explanation.

p-valuefloat or Quantity [:ref: ‘dimensionless’]



S. R. Jammalamadaka, A. SenGupta. “Topics in Circular Statistics”. Series on Multivariate Analysis, Vol. 5, 2001.


C. Agostinelli, U. Lund. “Circular Statistics from ‘Topics in Circular Statistics (2001)’”. 2015. <https://cran.r-project.org/web/packages/CircStats/CircStats.pdf>


M. Chirstman., C. Miller. “Testing a Sample of Directions for Uniformity.” Lecture Notes, STA 6934/5805. University of Florida, 2007.


D. Wilkie. “Rayleigh Test for Randomness of Circular Data”. Applied Statistics. 1983. <http://wexler.free.fr/library/files/wilkie%20(1983)%20rayleigh%20test%20for%20randomness%20of%20circular%20data.pdf>


>>> import numpy as np
>>> from astropy.stats import rayleightest
>>> from astropy import units as u
>>> data = np.array([130, 90, 0, 145])*u.deg
>>> rayleightest(data) 
<Quantity 0.2563487733797317>