Maximum Mean DIscrepancy その3

  • Rのkernlab
library(kernlab)
# create data
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