| dcor_large | R Documentation |
Computes the distance correlation between x and y. If
block_size = NULL, the standard full pairwise-distance computation is
used. If block_size is a positive integer, a blockwise algorithm is
used that avoids allocating the full n \times n distance matrices.
dcor_large(x, y, block_size = NULL)
x |
A numeric vector or numeric matrix. Rows are observations. |
y |
A numeric vector or numeric matrix. Rows are observations. |
block_size |
Either |
If block_size = NULL and both inputs are univariate, the computation
is delegated to the optimized dccpp implementation. In this special
case, the computational complexity is of order O(n \log n), whereas
the standard and blockwise multivariate implementations both have quadratic
complexity.
Vectors are treated as one-column matrices.
Distance correlation is obtained by combining squared distance covariance
terms for (x, y), (x, x), and (y, y).
If block_size is a positive integer, the same quantities are computed
block by block. The rows of x and y are partitioned into
consecutive blocks of size at most block_size. Distances are then
computed only for one block pair at a time, and the contributions needed for
distance covariance are accumulated across all block pairs. This can greatly
reduce memory requirements for large n.
The block size does not need to divide the sample size. If the sample size
is not a multiple of block_size, the final block is simply smaller.
The blockwise computation is intended for larger data sets where forming the
full pairwise distance matrices may be memory intensive. It computes the same
sample quantity as the standard version, up to possible small differences
from floating-point arithmetic. It mainly reduces memory usage; the computational
complexity remains of order O(n^2).
Smaller block sizes use less memory but may be somewhat slower. Larger block sizes use more memory and approach the standard full computation.
A numeric scalar, the distance correlation.
Székely, G. J., Rizzo, M. L., and Bakirov, N. K. (2007). Measuring and testing dependence by correlation of distances. Annals of Statistics, 35(6), 2769–2794. doi:10.1214/009053607000000505.
Székely, G. J. and Rizzo, M. L. (2009). Brownian distance covariance. Annals of Applied Statistics, 3(4), 1236–1265. doi:10.1214/09-AOAS312.
Chaudhuri, A. and Hu, W. (2019). A fast algorithm for computing distance correlation. Computational Statistics & Data Analysis, 135, 15–24. doi:10.1016/j.csda.2019.01.016.
n <- 100
x <- matrix(rnorm(n * 3), n, 3)
y <- matrix(rnorm(n * 2), n, 2)
r1 <- dcor_large(x, y)
r2 <- dcor_large(x, y, block_size = 32L)
r1
r2
all.equal(r1, r2, tolerance = 1e-10)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.