null = np.sort(null) return null def compute_pvalues(p_upper, null): row = {} row["estimated_p_upper"] = p_upper ind = np.searchsorted(null, p_upper) row["pvalue"] = 1 - ind / len( null) # TODO make more exact but this is roughly right for one sided return row edge_types = ["ad", "aa", "dd", "da"] null_estimators = { "ER": EREstimator(directed=True, loops=False), "DCER": DCEREstimator(directed=True, loops=False, degree_directed=False), } rerun_test = False if rerun_test: currtime = time.time() n_null_samples = 100 statistics = [] for edge_type in edge_types: print(f"Edge type = {edge_type}") edge_type_adj = mg.to_edge_type_graph(edge_type).adj edge_type_adj = binarize(edge_type_adj)