Learn R Programming

tectonicr (version 0.4.9)

ar_test: Angular Randomisation Test of Homogeneity

Description

Performs Angular Randomisation Test for homogeneity on two samples of circular data after Ruxton et al. (2023). P-values are estimated using permutation.

Usage

ar_test(x, y, n_perm = 1000L, axial = FALSE, alpha = NULL)

Value

list containing the test statistic, the p-value, the significance value alpha and a logical decision whether to reject the null hypothesis or not.

Arguments

x, y

numeric vectors. Angles in degrees

n_perm

integer. Number of permutations

axial

logical. Whether the data are axial, i.e. \(\pi\)-periodical (TRUE) or directional, i.e. \(2 \pi\)-periodical (FALSE, the default).

alpha

(optional) numeric. Significance level of the test (values between 0 and 1).

Details

Null Hypothesis (\(H_0\)): The two circular samples share an identical underlying probability distribution.

Alternative Hypothesis (\(H_{1}\)): The two samples come from different distributions.

Interpretation

  • Small p-value (\(p < \alpha\), e.g., <0.05): Reject the null hypothesis. This indicates strong evidence that the two samples come from different circular distributions (differing in central tendency/mean direction or shape).

  • Large p-value (\(p \ge \alpha\)): Fail to reject the null hypothesis; there is insufficient evidence to claim the two circular samples differ.

References

Ruxton, G.D., Malkemper, E.P. & Landler, L. Evaluating the power of a recent method for comparing two circular distributions: an alternative to the Watson U2 test. Sci Rep 13, 10007 (2023). https://doi.org/10.1038/s41598-023-36960-1

See Also

Other Tests: kuiper_test(), norm_chisq(), rayleigh-test, watson_test(), watson_two_sample, watson_wheeler_test_perm(), weighted-rayleigh-test

Examples

Run this code
set.seed(20250411)
x1 <- c(35, 45, 50, 55, 60, 70, 85, 95, 105, 120)
x2 <- c(75, 80, 90, 100, 110, 130, 135, 140, 150, 160, 165)
ar_test(x1, x2)

# San Andreas Fault Data:
data(san_andreas)
data("nuvel1")
PoR <- subset(nuvel1, nuvel1$plate.rot == "na")
sa.por <- PoR_shmax(san_andreas, PoR, "right")
ar_test(sa.por$azi.PoR, rvm(100, 135, 10), axial = TRUE, alpha = 0.05)

Run the code above in your browser using DataLab