estimators: Estimators for the axis of rotational symmetry theta

estimatorsR Documentation

Estimators for the axis of rotational symmetry \boldsymbol\theta

Description

Estimation of the axis of rotational symmetry \boldsymbol{\theta} of a rotational symmetric unit-norm random vector \mathbf{X} in S^{p-1}:=\{\mathbf{x}\in R^p:||\mathbf{x}||=1\}, p \ge 2, from a hyperspherical sample \mathbf{X}_1,\ldots,\mathbf{X}_n\in S^{p-1}.

Usage

spherical_mean(data)

spherical_loc_PCA(data)

Arguments

data

hyperspherical data, a matrix of size c(n, p) with unit norm rows. Normalized internally if any row does not have unit norm (with a warning message). NAs are ignored.

Details

The spherical_mean estimator computes the sample mean of \mathbf{X}_1,\ldots,\mathbf{X}_n and normalizes it by its norm (if the norm is different from zero). It estimates consistently \boldsymbol{\theta} for rotational symmetric models based on angular functions g that are monotone increasing.

The estimator in spherical_loc_PCA is based on the fact that, under rotational symmetry, the expectation of \mathbf{X}\mathbf{X}' is a\boldsymbol{\theta}\boldsymbol{\theta}' + b(\mathbf{I}_p - \boldsymbol{\theta}\boldsymbol{\theta}') for certain constants a,b \ge 0. Therefore, \boldsymbol{\theta} is the eigenvector with unique multiplicity of the expectation of \mathbf{X}\mathbf{X}'. Its use is recommended if the rotationally symmetric data is not unimodal.

Value

A vector of length p with an estimate for \boldsymbol{\theta}.

Author(s)

Eduardo García-Portugués, Davy Paindaveine, and Thomas Verdebout.

References

García-Portugués, E., Paindaveine, D., Verdebout, T. (2020) On optimal tests for rotational symmetry against new classes of hyperspherical distributions. Journal of the American Statistical Association, 115(532):1873–1887. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/01621459.2019.1665527")}

Examples

# Sample from a vMF
n <- 200
p <- 10
theta <- c(1, rep(0, p - 1))
set.seed(123456789)
data <- r_vMF(n = n, mu = theta, kappa = 3)
theta_mean <- spherical_mean(data)
theta_PCA <- spherical_loc_PCA(data)
sqrt(sum((theta - theta_mean)^2)) # More efficient
sqrt(sum((theta - theta_PCA)^2))

# Sample from a mixture of antipodal vMF's
n <- 200
p <- 10
theta <- c(1, rep(0, p - 1))
set.seed(123456789)
data <- rbind(r_vMF(n = n, mu = theta, kappa = 3),
              r_vMF(n = n, mu = -theta, kappa = 3))
theta_mean <- spherical_mean(data)
theta_PCA <- spherical_loc_PCA(data)
sqrt(sum((theta - theta_mean)^2))
sqrt(sum((theta - theta_PCA)^2)) # Better suited in this case

rotasym documentation built on Aug. 19, 2023, 9:06 a.m.