hsic.test {kpcalg} | R Documentation |
Hilber Schmidt Independence Criterion test
Description
Test to check the independence between two variables x and y using HSIC. The hsic.test() function, uses Hilbert-Schmidt independence criterion to test for independence between two random variables.
Usage
hsic.test(x, y, p = 0, hsic.method = c("gamma", "perm"), sig = 1,
numCol = floor(length(x)/10))
Arguments
x |
data of first sample |
y |
data of second sample |
p |
number of replicates, if 0 |
hsic.method |
method for HSIC test, either gamma test hsic.gamma or permutation test hsic.perm |
sig |
Gaussian kernel width for HSIC. Default is 1 |
numCol |
number of columns in the Incomplete Cholesky Decomposition of Gram matrices. Default is floor(length(x)/10) |
Details
Let x and y be two samples of length n. Gram matrices K and L are defined as: K_{i,j} = \exp\frac{(x_i-x_j)^2}{\sigma^2}
and L_{i,j} = \exp\frac{(y_i-y_j)^2}{\sigma^2}
. H_{i,j} = \delta_{i,j} - \frac{1}{n}
. Let A=HKH
and B=HLH
, then HSIC(x,y)=\frac{1}{n^2}Tr(AB)
.
Value
hsic.gamma() returns a list with class htest containing
method |
description of test |
statistic |
observed value of the test statistic |
estimate |
HSIC(x,y) |
estimates |
a vector: [HSIC(x,y), mean of HSIC(x,y), variance of HSIC(x,y)] |
replicates |
replicates of the test statistic |
p.value |
approximate p-value of the test |
data.name |
desciption of data |
Author(s)
Petras Verbyla (petras.verbyla@mrc-bsu.cam.ac.uk) and Nina Ines Bertille Desgranges
References
A. Gretton et al. (2005). Kernel Methods for Measuring Independence. JMLR 6 (2005) 2075-2129.
See Also
hsic.perm, hsic.clust, kernelCItest
Examples
library(energy)
set.seed(10)
#independence
x <- runif(300)
y <- runif(300)
hsic.gamma(x,y)
hsic.perm(x,y)
dcov.gamma(x,y)
dcov.test(x,y)
#uncorelated but not dependent
z <- 10*(runif(300)-0.5)
w <- z^2 + 10*runif(300)
cor(z,w)
hsic.gamma(z,w)
hsic.perm(z,w)
dcov.gamma(z,w)
dcov.test(z,w)