pdDepth {pdSpecEst} | R Documentation |
Data depth for HPD matrices
Description
pdDepth
calculates the data depth of a HPD matrix with respect
to a given data cloud (i.e., a sample or collection) of HPD matrices, or the integrated
data depth of a sequence (curve) of HPD matrices with respect to a given data cloud of
sequences (curves) of HPD matrices as detailed in (Chau et al. 2019).
Usage
pdDepth(y = NULL, X, method = "gdd", metric = "Riemannian")
Arguments
y |
either a |
X |
depending on the input |
method |
the data depth measure, one of |
metric |
the metric that the space of HPD matrices is equipped with. The default choice is |
Details
Available pointwise or integrated intrinsic data depth functions for samples of HPD matrices are: (i)
geodesic distance depth, (ii) intrinsic zonoid depth and (iii) intrinsic spatial depth.
The various data depth measures and their theoretical properties are described in
(Chau et al. 2019). If y
is a (d,d)
-dimensional HPD matrix, X
should be a (d,d,S)
-dimensional array
corresponding to a length S
sequence of (d,d)
-dimensional HPD matrices and the pointwise
data depth values are computed. If y
is a sequence of (d,d)
-dimensional HPD matrices of length n
(i.e., (d,d,n)
-dimensional array), X
should be a (d,d,n,S)
-dimensional array of replicated sequences of HPD matrices
and the integrated data depth values according to (Chau et al. 2019) are computed. If is.null(y)
, the data depth
of each individual object (i.e., a HPD matrix or a sequence of HPD matrices) in X
is computed with
respect to the data cloud X
.
The function computes the intrinsic data depth values based on the metric space of HPD matrices equipped with
one of the following metrics: (i) Riemannian metric (default) as detailed in e.g., (Bhatia 2009)[Chapter 6] or
(Pennec et al. 2006), (ii) log-Euclidean metric, the Euclidean inner product between matrix logarithms,
(iii) Cholesky metric, the Euclidean inner product between Cholesky decompositions, (iv) Euclidean metric and
(v) root-Euclidean metric. The default choice (Riemannian) has several properties not shared by the
other metrics, see (Chau et al. 2019) for more details.
Value
If !is.null(y)
, pdDepth
returns the numeric depth value of y
with
respect to X
. If is.null(y)
, pdDepth
returns a numeric vector of length S
corresponding to
the vector of depth values for each individual object in X
with respect to X
itself.
Note
The function does not check for positive definiteness of the input matrices, and may fail if matrices are close to being singular.
The data depth computations under the Riemannian metric are more involved than under the other metrics, and may therefore result in (significantly) higher computation times.
References
Bhatia R (2009).
Positive Definite Matrices.
Princeton University Press, New Jersey.
Chau J, Ombao H, von
Sachs R (2019).
“Intrinsic data depth for Hermitian positive definite matrices.”
Journal of Computational and Graphical Statistics, 28(2), 427–439.
doi: 10.1080/10618600.2018.1537926.
Pennec X, Fillard P, Ayache N (2006).
“A Riemannian framework for tensor computing.”
International Journal of Computer Vision, 66(1), 41–66.
See Also
Examples
## Pointwise depth
X1 <- replicate(50, Expm(diag(2), H.coeff(rnorm(4), inverse = TRUE)))
pdDepth(y = diag(2), X = X1) ## depth of one point
pdDepth(X = X1) ## depth of each point in the data cloud
## Integrated depth
X2 <- replicate(50, replicate(5, Expm(diag(2), H.coeff(rnorm(4), inverse = TRUE))))
pdDepth(y = replicate(5, diag(2)), X2, method = "zonoid", metric = "logEuclidean")
pdDepth(X = X2, method = "zonoid", metric = "logEuclidean")