rayleigh_test function

Rayleigh Test of Circular Uniformity

Rayleigh Test of Circular Uniformity

Performs a Rayleigh test for uniformity of circular/directional data by assessing the significance of the mean resultant length.

rayleigh_test(x, mu = NULL, axial = TRUE, quiet = FALSE)

Arguments

  • x: numeric vector. Values in degrees
  • mu: (optional) The specified or known mean direction (in degrees) in alternative hypothesis
  • axial: logical. Whether the data are axial, i.e. π\pi-periodical (TRUE, the default) or directional, i.e. 2π2 \pi-periodical (FALSE).
  • quiet: logical. Prints the test's decision.

Returns

a list with the components:

  • R or C: mean resultant length or the dispersion (if mu is specified). Small values of R (large values of C) will reject uniformity. Negative values of C indicate that vectors point in opposite directions (also lead to rejection).
  • statistic: test statistic
  • p.value: significance level of the test statistic

Details

  • H0H0:: angles are randomly distributed around the circle.
  • H1H1:: angles are from unimodal distribution with unknown mean direction and mean resultant length (when mu is NULL. Alternatively (when mu is specified), angles are uniformly distributed around a specified direction.

If statistic > p.value, the null hypothesis is rejected, i.e. the length of the mean resultant differs significantly from zero, and the angles are not randomly distributed.

Note

Although the Rayleigh test is consistent against (non-uniform) von Mises alternatives, it is not consistent against alternatives with p = 0 (in particular, distributions with antipodal symmetry, i.e. axial data). Tests of non-uniformity which are consistent against all alternatives include Kuiper's test (kuiper_test()) and Watson's U2U^2 test (watson_test()).

Examples

# Example data from Mardia and Jupp (2001), pp. 93 pidgeon_homing <- c(55, 60, 65, 95, 100, 110, 260, 275, 285, 295) rayleigh_test(pidgeon_homing, axial = FALSE) # Example data from Davis (1986), pp. 316 finland_stria <- c( 23, 27, 53, 58, 64, 83, 85, 88, 93, 99, 100, 105, 113, 113, 114, 117, 121, 123, 125, 126, 126, 126, 127, 127, 128, 128, 129, 132, 132, 132, 134, 135, 137, 144, 145, 145, 146, 153, 155, 155, 155, 157, 163, 165, 171, 172, 179, 181, 186, 190, 212 ) rayleigh_test(finland_stria, axial = FALSE) rayleigh_test(finland_stria, mu = 105, axial = FALSE) # Example data from Mardia and Jupp (2001), pp. 99 atomic_weight <- c( rep(0, 12), rep(3.6, 1), rep(36, 6), rep(72, 1), rep(108, 2), rep(169.2, 1), rep(324, 1) ) rayleigh_test(atomic_weight, 0, axial = FALSE) # San Andreas Fault Data: data(san_andreas) rayleigh_test(san_andreas$azi) data("nuvel1") PoR <- subset(nuvel1, nuvel1$plate.rot == "na") sa.por <- PoR_shmax(san_andreas, PoR, "right") rayleigh_test(sa.por$azi.PoR, mu = 135)

References

Mardia and Jupp (2000). Directional Statistics. John Wiley and Sons.

Wilkie (1983): Rayleigh Test for Randomness of Circular Data. Appl. Statist. 32, No. 3, pp. 311-312

Jammalamadaka, S. Rao and Sengupta, A. (2001). Topics in Circular Statistics, Sections 3.3.3 and 3.4.1, World Scientific Press, Singapore.

See Also

mean_resultant_length(), circular_mean(), norm_chisq(), kuiper_test(), watson_test(), weighted_rayleigh()

  • Maintainer: Tobias Stephan
  • License: GPL (>= 3)
  • Last published: 2025-03-01