# stiefel.utest: Test of Uniformity on Stiefel Manifold In Riemann: Learning with Data on Riemannian Manifolds

## Description

Given the data on Stiefel manifold St(k,p), it tests whether the data is distributed uniformly.

## Usage

 `1` ```stiefel.utest(stobj, method = c("Rayleigh", "RayleighM")) ```

## Arguments

 `stobj` a S3 `"riemdata"` class for N Stiefel-valued data. `method` (case-insensitive) name of the test method containing `"Rayleigh"`original Rayleigh statistic. `"RayleighM"`modified Rayleigh statistic with better order of error.

## Value

a (list) object of `S3` class `htest` containing:

statistic

a test statistic.

p.value

p-value under H_0.

alternative

alternative hypothesis.

method

name of the test.

data.name

name(s) of provided sample data.

## References

\insertRef

chikuse_statistics_2003Riemann

\insertRef

mardia_directional_1999Riemann

`wrap.stiefel`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28``` ```#------------------------------------------------------------------- # Compare Rayleigh's original and modified versions of the test # # Test 1. sample uniformly from St(2,4) # Test 2. use perturbed principal components from 'iris' data in R^4 # which is concentrated around a point to reject H0. #------------------------------------------------------------------- ## DATA GENERATION # 1. uniform data myobj1 = stiefel.runif(n=100, k=2, p=4) # 2. perturbed principal components data(iris) irdat = list() for (n in 1:100){ tmpdata = iris[1:50,1:4] + matrix(rnorm(50*4,sd=0.5),ncol=4) irdat[[n]] = eigen(cov(tmpdata))\$vectors[,1:2] } myobj2 = wrap.stiefel(irdat) ## TEST # 1. uniform data stiefel.utest(myobj1, method="Rayleigh") stiefel.utest(myobj1, method="RayleighM") # 2. concentrated data stiefel.utest(myobj2, method="rayleIgh") # method names are stiefel.utest(myobj2, method="raYleiGhM") # CASE - INSENSITIVE ! ```