Description Usage Arguments Value References Examples
View source: R/distcov_function.R
Calculates the distance covariance \insertCiteszekely2007,szekely2009browniandcortools.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
X |
contains either the first sample or its corresponding distance matrix. In the first case, X can be provided either as a vector (if one-dimensional), a matrix or a data.frame (if two-dimensional or higher). In the second case, the input must be a distance matrix corresponding to the sample of interest. If X is a sample, type.X must be specified as "sample". If X is a distance matrix, type.X must be specified as "distance". |
Y |
see X. |
affine |
logical; specifies if the affinely invariant distance covariance \insertCitedueck2014affinelydcortools should be calculated or not. |
standardize |
logical; specifies if X and Y should be standardized dividing each component by its standard deviations. No effect when affine = TRUE. |
bias.corr |
logical; specifies if the bias corrected version of the sample distance covariance \insertCitehuo2016fastdcortools should be calculated. |
type.X |
For "distance", X is interpreted as a distance matrix. For "sample", X is intepreted as a sample. |
type.Y |
see type.X. |
metr.X |
specifies the metric which should be used to compute the distance matrix for X (ignored when type.X = "distance"). Options are "euclidean", "discrete", "alpha", "minkowski", "gauss", "gaussauto", "boundsq" or user-specified metrics (see examples). For "alpha", "minkowski", "gauss", "gaussauto" and "boundsq", the corresponding parameters are specified via "c(metric,parameter)", c("gaussian",3) for example uses a Gaussian metric with bandwith parameter 3; the default parameter is 2 for "minkowski" and "1" for all other metrics. See \insertCitelyons2013distance,sejdinovic2013equivalence,bottcher2017detecting;textualdcortools for details. |
metr.Y |
see metr.X. |
use |
specifies how to treat missing values. "complete.obs" excludes NA's, "all" uses all observations. |
algorithm |
specifies the algorithm used for calculating the distance covariance. "fast" uses an O(n log n) algorithm if the observations are one-dimensional and metr.X and metr.Y are either "euclidean" or "discrete", see also \insertCitehuo2016fast;textualdcortools. "memsave" uses a memory saving version of the standard algorithm with computational complexity O(n^2) but requiring only O(n) memory. "standard" uses the classical algorithm. User-specified metrics always use the classical algorithm. "auto" chooses the best algorithm for the specific setting using a rule of thumb. |
numeric; the distance covariance between samples X and Y.
bottcher2017detectingdcortools
\insertRefdueck2014affinelydcortools
\insertRefhuo2016fastdcortools
\insertReflyons2013distancedcortools
\insertRefsejdinovic2013equivalencedcortools
\insertRefszekely2007dcortools
\insertRefszekely2009browniandcortools
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | X <- rnorm(100)
Y <- X + 3 * rnorm(100)
distcov(X, Y) # standard distance covariance
distcov(X, Y, metr.X = "gaussauto", metr.Y = "gaussauto") # Gaussian distance with bandwidth choice based on median heuristic
distcov(X, Y, metr.X = c("alpha", 0.5), metr.Y = c("alpha",0.5)) # alpha distance covariance with alpha = 0.5.
#Define a user-specified (slow) version of the alpha metric
alpha_user <- function(X, prm = 1, kernel = FALSE) {
as.matrix(dist(X)) ^ prm
}
distcov(X, Y, metr.X = c("alpha", 0.5), metr.Y = c("alpha",0.5)) # Gives the same result as before.
#User-specified Gaussian kernel function
gauss_kernel <- function(X, prm = 1, kernel = TRUE) {
exp(as.matrix(dist(X)) ^ 2 / 2 / prm ^ 2)
}
distcov(X, Y, metr.X = c("gauss_kernel", 2), metr.Y = c("gauss_kernel",2)) # calculates the distance covariance using the corresponding kernel-induced metric
distcov(X, Y, metr.X = c("gaussian", 2), metr.Y = c("gaussian",2)) ## same result
Y <- matrix(nrow = 100, ncol = 2)
X <- rnorm(300)
dim(X) <- c(100,3)
Z <- rnorm(100)
Y <- matrix(nrow = 100, ncol = 2)
Y[,1] <- X[,1]+Z
Y[,2] <- 3*Z
distcov(X,Y)
distcov(X,Y, affine = T) # affinely invariant distance covariance
distcov(X,Y, standardize = T) ## distance covariance standardizing the components of X and Y
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.