unif_stat | R Documentation |
Implementation of several statistics for assessing uniformity
on the (hyper)sphere
S^{p-1} := \{{\bf x} \in R^p : ||{\bf x}|| = 1\}
, p\ge 2
, for a sample
{\bf X}_1,\ldots,{\bf X}_n\in S^{p-1}
.
unif_stat
receives a (several) sample(s) of directions in
Cartesian coordinates, except for the circular case (p=2
) in
which the sample(s) can be angles
\Theta_1,\ldots,\Theta_n\in [0, 2\pi)
.
unif_stat
allows to compute several statistics to several samples
within a single call, facilitating thus Monte Carlo experiments.
unif_stat(data, type = "all", data_sorted = FALSE, CCF09_dirs = NULL,
CJ12_reg = 3, cov_a = 2 * pi, Cressie_t = 1/3, K_CCF09 = 25,
Poisson_rho = 0.5, Pycke_q = 0.5, Rayleigh_m = 1, Riesz_s = 1,
Rothman_t = 1/3, Sobolev_vk2 = c(0, 0, 1), Softmax_kappa = 1,
Stereo_a = 0)
data |
sample to compute the test statistic. An array of size
|
type |
type of test to be applied. A character vector containing any of
the following types of tests, depending on the dimension
If |
data_sorted |
is the circular data sorted? If |
CCF09_dirs |
a matrix of size |
CJ12_reg |
type of asymptotic regime for CJ12 test, either |
cov_a |
|
Cressie_t |
|
K_CCF09 |
integer giving the truncation of the series present in the
asymptotic distribution of the Kolmogorov-Smirnov statistic. Defaults to
|
Poisson_rho |
|
Pycke_q |
|
Rayleigh_m |
integer |
Riesz_s |
|
Rothman_t |
|
Sobolev_vk2 |
weights for the finite Sobolev test. A non-negative
vector or matrix. Defaults to |
Softmax_kappa |
|
Stereo_a |
|
Except for CCF09_dirs
, K_CCF09
, and CJ12_reg
, all the
test-specific parameters are vectorized.
Descriptions and references for most of the statistics are available in García-Portugués and Verdebout (2018).
A data frame of size c(M, length(type))
, with column names
given by type
, that contains the values of the test statistics.
García-Portugués, E. and Verdebout, T. (2018) An overview of uniformity tests on the hypersphere. arXiv:1804.00286. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.1804.00286")}.
## Circular data
# Sample
n <- 10
M <- 2
Theta <- r_unif_cir(n = n, M = M)
# Matrix
unif_stat(data = Theta, type = "all")
# Array
unif_stat(data = array(Theta, dim = c(n, 1, M)), type = "all")
# Vector
unif_stat(data = Theta[, 1], type = "all")
## Spherical data
# Circular sample in Cartesian coordinates
n <- 10
M <- 2
X <- array(dim = c(n, 2, M))
for (i in 1:M) X[, , i] <- cbind(cos(Theta[, i]), sin(Theta[, i]))
# Array
unif_stat(data = X, type = "all")
# High-dimensional data
X <- r_unif_sph(n = n, p = 3, M = M)
unif_stat(data = X, type = "all")
## Specific arguments
# Rothman
unif_stat(data = Theta, type = "Rothman", Rothman_t = 0.5)
# CCF09
unif_stat(data = X, type = "CCF09", CCF09_dirs = X[, , 1])
unif_stat(data = X, type = "CCF09", CCF09_dirs = X[, , 1], K_CCF09 = 1)
# CJ12
unif_stat(data = X, type = "CJ12", CJ12_reg = 3)
unif_stat(data = X, type = "CJ12", CJ12_reg = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.