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)

[Package kpcalg version 1.0.1 Index]