Given the data on Grassmann manifold \(Gr(k,p)\), it tests whether the data is distributed uniformly.
Usage
grassmann.utest(grobj, method = c("Bing", "BingM"))
Arguments
- grobj
a S3
"riemdata"
class of Grassmann-valued data.- method
(case-insensitive) name of the test method containing
"Bing"
Bingham statistic.
"BingM"
modified Bingham 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
Chikuse Y (2003). Statistics on Special Manifolds, volume 174 of Lecture Notes in Statistics. Springer New York, New York, NY. ISBN 978-0-387-00160-9 978-0-387-21540-2.
Mardia KV, Jupp PE (eds.) (1999). Directional Statistics, Wiley Series in Probability and Statistics. John Wiley \& Sons, Inc., Hoboken, NJ, USA. ISBN 978-0-470-31697-9 978-0-471-95333-3.
Examples
#-------------------------------------------------------------------
# Compare Bingham's original and modified versions of the test
#
# Test 1. sample uniformly from Gr(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 = grassmann.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.grassmann(irdat)
## Test 1 : uniform data
grassmann.utest(myobj1, method="Bing")
#>
#> Bingham Test of Uniformity on Grassmann Manifold
#>
#> data: myobj1
#> statistic = 4.2637, p-value = 0.8932
#> alternative hypothesis: data is not uniformly distributed on Gr(2,4).
#>
grassmann.utest(myobj1, method="BingM")
#>
#> Modified Bingham Test of Uniformity on Grassmann Manifold
#>
#> data: myobj1
#> statistic = 4.2507, p-value = 0.8942
#> alternative hypothesis: data is not uniformly distributed on Gr(2,4).
#>
## Tests : iris data
grassmann.utest(myobj2, method="bINg") # method names are
#>
#> Bingham Test of Uniformity on Grassmann Manifold
#>
#> data: myobj2
#> statistic = 233.5, p-value < 2.2e-16
#> alternative hypothesis: data is not uniformly distributed on Gr(2,4).
#>
grassmann.utest(myobj2, method="BiNgM") # CASE - INSENSITIVE !
#>
#> Modified Bingham Test of Uniformity on Grassmann Manifold
#>
#> data: myobj2
#> statistic = 257.12, p-value < 2.2e-16
#> alternative hypothesis: data is not uniformly distributed on Gr(2,4).
#>