Learn R Programming

tectonicr (version 0.4.9)

kuiper_test: Kuiper Test of Circular Uniformity

Description

A statistical test used to determine whether a set of angular or circular data points (such as times of day, compass directions, or degrees) are spread out evenly around a circle or if they cluster in some way.

Usage

kuiper_test(x, alpha = 0, axial = TRUE, quiet = FALSE)

Value

list containing the test statistic statistic and the significance level p.value.

Arguments

x

numeric vector. Values in degrees

alpha

Significance level of the test. Valid levels are 0.01, 0.05, and 0.1. This argument may be omitted (NULL, the default), in which case, a range for the p-value will be returned.

axial

logical. Whether the data are axial, i.e. \(\pi\)-periodical (TRUE, the default) or directional, i.e. \(2 \pi\)-periodical (FALSE). In case of axial data, the angles will be doubled for the test.

quiet

logical. Prints the test's decision.

Details

The Null Hypothesis (\(H_0\)): The data are distributed completely uniformly (randomly and evenly) around the circle.

The Alternative Hypothesis (\(H_1\)): The data are not uniform and show a preference, clustering, or pattern somewhere on the circle.

The Test Statistic (V or \(D^{+} + D^{-}\)): It measures the greatest positive and negative differences between your data's empirical cumulative distribution and a theoretical uniform distribution.

Interpreting the Results

  • High Test Statistic / Low p-value (\(p < \alpha\), typically 0.05): You reject the null hypothesis. This means your data are not uniform; they have a significant preferred direction, grouping, or non-random pattern on the circle.

  • Low Test Statistic / High p-value (\(p \ge 0.05\)): You fail to reject the null hypothesis. There is no strong evidence to say the data are different from a flat, uniform distribution. The points appear random across the circle.

See Also

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

Examples

Run this code
# Example data from Mardia and Jupp (1999), pp. 93
kuiper_test(homing, alpha = .05)

# San Andreas Fault Data:
data(san_andreas)
data("nuvel1")
PoR <- subset(nuvel1, nuvel1$plate.rot == "na")
sa.por <- PoR_shmax(san_andreas, PoR, "right")
kuiper_test(sa.por$azi.PoR, alpha = .05)

Run the code above in your browser using DataLab