# ecdfdist2: Pairwise Measures for Two Sets of Empirical CDFs In maotai: Tools for Matrix Algebra, Optimization and Inference

## Description

We measure distance between two sets of empirical cumulative distribution functions (ECDF). For simplicity, we only take an input of ecdf objects from stats package.

## Usage

 1 ecdfdist2(elist1, elist2, method = c("KS", "Lp", "Wasserstein"), p = 2) 

## Arguments

 elist1 a length M list of ecdf objects. elist2 a length N list of ecdf objects. method name of the distance/dissimilarity measure. Case insensitive. p exponent for Lp or Wasserstein distance.

## Value

an (M\times N) matrix of pairwise distances.

## See Also

ecdf ecdfdist

## 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 ## toy example # first list : 10 of random and uniform distributions mylist1 = list() for (i in 1:10){ mylist1[[i]] = stats::ecdf(stats::rnorm(50, sd=2))} for (i in 11:20){mylist1[[i]] = stats::ecdf(stats::runif(50, min=-5))} # second list : 15 uniform and random distributions mylist2 = list() for (i in 1:15){ mylist2[[i]] = stats::ecdf(stats::runif(50, min=-5))} for (i in 16:30){mylist2[[i]] = stats::ecdf(stats::rnorm(50, sd=2))} ## compute Kolmogorov-Smirnov distance dm2ks = ecdfdist2(mylist1, mylist2, method="KS") dm2lp = ecdfdist2(mylist1, mylist2, method="lp") dm2wa = ecdfdist2(mylist1, mylist2, method="wasserstein") nrs = nrow(dm2ks) ## visualize opar = par(no.readonly=TRUE) par(mfrow=c(1,3), pty="s") image(dm2ks[,nrs:1], axes=FALSE, main="Kolmogorov-Smirnov") image(dm2lp[,nrs:1], axes=FALSE, main="L2") image(dm2wa[,nrs:1], axes=FALSE, main="Wasserstein") par(opar) 

maotai documentation built on Feb. 3, 2022, 5:09 p.m.