mmd_test {Ecume} | R Documentation |
Perform the Maximum Mean Discrepancy unbiased bootstrap test
Description
Maximum Mean Discrepancy Unbiased Test
Usage
mmd_test(
x,
y,
kernel = "rbfdot",
type = ifelse(min(nrow(x), nrow(y)) < 1000, "unbiased", "linear"),
null = c("permutation", "exact"),
iterations = 10^3,
frac = 1,
...
)
Arguments
x |
d-dimensional samples from the first distribution |
y |
d-dimensional samples from the first distribution |
kernel |
A character that must match a known kernel. See details. |
type |
Which statistic to use. One of 'unbiased' or 'linear'. See
Gretton et al for details. Default to 'unbiased' if the two vectors are of
length less than |
null |
How to asses the null distribution. This can only be set to exact
if the |
iterations |
How many iterations to do to simulate the null distribution.
Default to 10^4. Only used if |
frac |
For the linear statistic, how many points to sample. See details. |
... |
Further arguments passed to kernel functions |
Details
This computes the MMD^2u unbiased statistic or the MMDl linear statistic from Gretton et al. The code relies on the pairwise_kernel function from the python module sklearn. To list the available kernels, see the examples.
Value
A list containing the following components:
-
statistic the value of the test statistic.
-
p.value the p-value of the test.
References
Gretton, A., Borgwardt, K., Rasch, M. J., Schölkopf, B., & Smola, A. (2012). A Kernel Two-Sample Test Journal of Machine Learning Research (2012)
Examples
x <- matrix(rnorm(1000, 0, 1), ncol = 10)
y <- matrix(rnorm(1000, 0, 2), ncol = 10)
mmd_test(x, y)
mmd_test(x, y, type = "linear")
x <- matrix(rnorm(1000, 0, 1), ncol = 10)
y <- matrix(rnorm(1000, 0, 1), ncol = 10)
# Set iterations to small number for runtime
# Increase for more accurate results
mmd_test(x, y, iterations = 10^2)