library(kernlab)
x <- matrix(runif(300),100)
y <- matrix(runif(300)+1,100)
mmdo <- kmmd(x, y)
mmdo
> mmdo
Kernel Maximum Mean Discrepancy object of class "kmmd"
Gaussian Radial Basis kernel function.
Hyperparameter : sigma = 1.18155987898832
H0 Hypothesis rejected : TRUE
Rademacher bound : 0.546163676520458
1st and 3rd order MMD Statistics : 1.03692666322171 1.06709240109231
> mmdo@mmdstats
[1] 1.036927 1.067092
- MMD統計量は2つ出る。mmdo@mmdstats
- こちらのコードをたどると
mmd1 <- sqrt(max(0,sumKxx/(m*m) + sumKyy/(n*n) - 2/m/n* sumKxy))
mmd3 <- sum(hu)/M/(M-1)
-
- とあり、Biased MMDと、Unbiased MMD(のN=M(標本数が同じ)の場合の計算式)になっている
- Python