m.multivariance {multivariance} | R Documentation |
m distance multivariance
Description
Computes m distance multivariance.
Usage
m.multivariance(
x,
vec = NA,
m = 2,
Nscale = TRUE,
Escale = TRUE,
squared = TRUE,
...
)
Arguments
x |
either a data matrix or a list of doubly centered distance matrices |
vec |
if x is a matrix, then this indicates which columns are treated together as one sample; if x is a list, these are the indexes for which the multivariance is calculated. The default is all columns and all indexes, respectively. |
m |
|
Nscale |
if |
Escale |
if |
squared |
if |
... |
these are passed to |
Details
m-distance multivariance is per definition the scaled sum of certain distance multivariances, and it characterize m-dependence.
As a rough guide to interpret the value of total distance multivariance note:
Large values indicate dependence.
If the random variables are (m-1)-independent and
Nscale = TRUE
, values close to 1 and smaller indicate m-independence, larger values indicate dependence. In fact, in the case of independence the test statistic is a Gaussian quadratic form with expectation 1 and samples of it can be generated byresample.multivariance
.If the random variables are (m-1)-independent and
Nscale = FALSE
, small values (close to 0) indicate m-independence, larger values indicate dependence.
Since random variables are always 1-independent, the case m=2
characterizes pairwise independence.
Finally note, that due to numerical (in)precision the value of m-multivariance might become negative. In these cases it is set to 0. A warning is issued, if the value is negative and further than the usual (used by all.equal
) tolerance away from 0.
References
For the theoretic background see the reference [3] given on the main help page of this package: multivariance-package.
Examples
x = matrix(rnorm(3*30),ncol = 3)
# the following values are identical
m.multivariance(x,m =2)
1/choose(3,2)*(multivariance(x[,c(1,2)]) +
multivariance(x[,c(1,3)]) +
multivariance(x[,c(2,3)]))
# the following values are identical
m.multivariance(x,m=3)
multivariance(x)
# the following values are identical
1/4*(3*(m.multivariance(x,m=2)) + m.multivariance(x,m=3))
total.multivariance(x, Nscale = TRUE)
1/4*(multivariance(x[,c(1,2)], Nscale = TRUE) +
multivariance(x[,c(1,3)], Nscale = TRUE) +
multivariance(x[,c(2,3)], Nscale = TRUE) + multivariance(x, Nscale = TRUE))