// Formula: 1/(MN) SUM_i[((Mni - Nmi)^2)/(mi+ni)] static double chiSquared(MultiSet ms1, MultiSet ms2) { int m = ms1.size(), n = ms2.size(); double sum = 0; for (A key : joinSets(keys(ms1), keys(ms2))) { double mi = ms1.get(key); double ni = ms2.get(key); sum += sqr(mi-ni)/(mi+ni); } ret 1/(sum*m*n); }