gauss.pdist2: Pairwise Distances between two sets of Gaussian distributions

Description Usage Examples

View source: R/gauss.pdist2.R

Description

Pairwise Distances between two sets of Gaussian distributions

Usage

1
gauss.pdist2(glist1, glist2, type = c("bh", "cs", "kl", "skl", "wass2"))

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
## test with 1-dimensional Gaussian distributions
list1dA = list()
list1dB = list()
for (i in 1:5){
   val.center  = rnorm(1, sd=0.25)
   val.sd      = runif(1, min=0.75,max=1)
   list1dA[[i]] = wrapgauss1d(mean=val.center, sd=val.sd)
}
for (i in 6:10){
   val.center  = rnorm(1, sd=0.25) + 10
   val.sd      = runif(1, min=4.75,max=5)
   list1dA[[i]] = wrapgauss1d(mean=val.center, sd=val.sd)
}
for (j in 1:11){
   val.center   = rnorm(1, sd=0.25)
   val.sd       = runif(1, min=0.75,max=1)
   list1dB[[j]] = wrapgauss1d(mean=val.center, sd=val.sd)
}
for (j in 12:25){
   val.center  = rnorm(1, sd=0.25) + 10
   val.sd      = runif(1, min=4.75,max=5)
   list1dB[[j]] = wrapgauss1d(mean=val.center, sd=val.sd)
}

## compute pairwise distance 
d1wass2 = gauss.pdist2(list1dA, list1dB, type="wass2")
d1kl    = gauss.pdist2(list1dA, list1dB, type="kl")
d1skl   = gauss.pdist2(list1dA, list1dB, type="skl")
d1cs    = gauss.pdist2(list1dA, list1dB, type="cs")
d1bh    = gauss.pdist2(list1dA, list1dB, type="bh")

## visualize
opar <- par(mfrow=c(2,3))
image(d1wass2, axes=FALSE, main="pdist2: 2-Wasserstein")
image(d1kl,    axes=FALSE, main="pdist2: KL")
image(d1skl,   axes=FALSE, main="pdist2: Symmetric KL")
image(d1cs,    axes=FALSE, main="pdist2: Cauchy-Schwarz")
image(d1bh,    axes=FALSE, main="pdist2: Bhattacharyya")
par(opar)

kyoustat/T4Gauss documentation built on April 9, 2020, 10:47 a.m.