R/ecdfdist.R
ecdfdist.RdWe measure distance between two empirical cumulative distribution functions (ECDF). For
simplicity, we only take an input of ecdf objects from stats package.
ecdfdist(elist, method = c("KS", "Lp", "Wasserstein"), p = 2, as.dist = FALSE)a length \(N\) list of ecdf objects.
name of the distance/dissimilarity measure. Case insensitive.
exponent for Lp or Wasserstein distance.
a logical; TRUE to return dist object, FALSE to return an \((N\times N)\) symmetric matrix of pairwise distances.
either dist object of an \((N\times N)\) symmetric matrix of pairwise distances by as.dist argument.
# \donttest{
## toy example : 10 of random and uniform distributions
mylist = list()
for (i in 1:10){
mylist[[i]] = stats::ecdf(stats::rnorm(50, sd=2))
}
for (i in 11:20){
mylist[[i]] = stats::ecdf(stats::runif(50, min=-5))
}
## compute Kolmogorov-Smirnov distance
dm = ecdfdist(mylist, method="KS")
## visualize
mks =" KS distances of 2 Types"
opar = par(no.readonly=TRUE)
par(pty="s")
image(dm[,nrow(dm):1], axes=FALSE, main=mks)
par(opar)
# }