hsic.perm {kpcalg} | R Documentation |
Hilber Schmidt Independence Criterion permutation test
Description
Test to check the independence between two variables x and y using HSIC. The hsic.perm() function, uses Hilbert-Schmidt independence criterion to test for independence between random variables.
Usage
hsic.perm(x, y, sig = 1, p = 100, numCol = 50)
Arguments
x |
data of first sample |
y |
data of second sample |
sig |
Gaussian kernel width for HSIC tests. Default is 1 |
p |
Number of permutations. Default is 100 |
numCol |
maximum number of columns that we use for the incomplete Cholesky decomposition |
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)
. Permutation test permutes y p times to get y_{(p)}
and calculates HSIC(x,y_(p)). pval = \frac{1(HSIC(x,y)>HSIC(x,y_{(p)}))}{p}
.
Value
hsic.perm() 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.gamma, 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)