def table_group_pairwise_similarity(g1, g2, vec11, vec12, vec22, outfile, testtype=None): mean_11, std_11 = statcommon.vec_mean_std(vec11) mean_12, std_12 = statcommon.vec_mean_std(vec12) mean_22, std_22 = statcommon.vec_mean_std(vec22) f = open(outfile, 'w') f.write("Categories\tpval\ttval\tmean1 +/- std1\tmean2 +/- std2\n") # Compare 11 and 12 if testtype is None: testtype = statcommon.get_test_type2(islarge([vec11, vec12]), False) f.write("%s, %s_%s\t" % (g1, g1, g2)) t_11_12, p_11_12 = statcommon.ttest_pair(vec11, vec12, testtype=testtype) f.write("%.3f\t%.2e\t%.3f +/- %.3f\t%.3f +/- %.3f\n" % (t_11_12, p_11_12, mean_11, std_11, mean_12, std_12)) # Compare 12 and 22 if testtype is None: testtype = statcommon.get_test_type2(islarge([vec12, vec22]), False) f.write("%s_%s, %s\t" % (g1, g2, g2)) t_12_22, p_12_22 = statcommon.ttest_pair(vec12, vec22, testtype=testtype) f.write("%.3f\t%.2e\t%.3f +/- %.3f\t%.3f +/- %.3f\n" % (t_12_22, p_12_22, mean_12, std_12, mean_22, std_22)) # Compare 11 and 22 if testtype is None: testtype = statcommon.get_test_type2(islarge([vec11, vec22]), False) f.write("%s, %s\t" % (g1, g2)) t_11_22, p_11_22 = statcommon.ttest_pair(vec11, vec22, testtype=testtype) f.write("%.3f\t%.2e\t%.3f +/- %.3f\t%.3f +/- %.3f\n" % (t_11_22, p_11_22, mean_11, std_11, mean_22, std_22)) f.close()
def model_diff_signi_test(objs1, objs2, outdir, maxeval=0.005): if len(objs1) == 0 or len(objs2) == 0: return obj0 = objs1[0] for attr in obj0.get_attrs_depth1(): outfile = os.path.join(outdir, attr) f = open(outfile, "w") f.write("#Key\tstatistic\te_value\tGroup1 +/- Std1\tGroup2 +/- Std2\n") for k in obj0[attr]: v1 = [obj[attr][k] for obj in objs1] v2 = [obj[attr][k] for obj in objs2] sval, pval = statcommon.ttest_pair(v1, v2, False, "ranksums") eval = pval * len(obj0[attr]) if eval <= maxeval: f.write( "%s\t%s\t%s\t%s +/- %s\t%s +/- %s\n" % ( k, pfloat(sval), pfloat(eval), pfloat(np.mean(v1)), pfloat(np.std(v1)), pfloat(np.mean(v2)), pfloat(np.std(v2)), ) ) f.close()