pdDepth {pdSpecEst} | R Documentation |
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).
pdDepth(y = NULL, X, method = "gdd", metric = "Riemannian")
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 |
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.
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.
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.
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.
## 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")