// 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); double item = sqr(mi-ni)/(mi+ni); ifdef chiSquared_debug printVars_str(+key, +mi, +ni, +item); endifdef sum += item; } ret 1/(sum*m*n); }