def test_pc_stable_max_conds_dim(self): # Setting up strict test level pc_alpha = 0.05 #[0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5] tau_max = 2 alpha_level = 0.01 # true_parents_here = {0: [], # 1: [(1, -1), (0, -1)], # 2: [] # } dataframe = pp.DataFrame(self.data) cond_ind_test = ParCorr(verbosity=verbosity) pcmci = PCMCI(selected_variables=None, dataframe=dataframe, cond_ind_test=cond_ind_test, verbosity=verbosity) pcmci.run_pc_stable( selected_links=None, tau_min=1, tau_max=tau_max, save_iterations=False, pc_alpha=pc_alpha, max_conds_dim=2, max_combinations=1, ) parents = pcmci.all_parents # print parents # print _get_parent_graph(true_parents) assert_graphs_equal(parents, self.true_parents)
def run_pc_stable_parallel(j): """Wrapper around PCMCI.run_pc_stable estimating the parents for a single variable j. Parameters ---------- j : int Variable index. Returns ------- j, pcmci_of_j, parents_of_j : tuple Variable index, PCMCI object, and parents of j """ # CondIndTest is initialized globally below # Further parameters of PCMCI as described in the documentation can be # supplied here: pcmci_of_j = PCMCI(dataframe=dataframe, cond_ind_test=cond_ind_test, selected_variables=[j], verbosity=verbosity) # Run PC condition-selection algorithm. Also here further parameters can be # specified: parents_of_j = pcmci_of_j.run_pc_stable( selected_links=selected_links, tau_max=tau_max, pc_alpha=pc_alpha, ) # We return also the PCMCI object because it may contain pre-computed # results can be re-used in the MCI step (such as residuals or null # distributions) return j, pcmci_of_j, parents_of_j
def run_pc_stable_parallel(j, dataframe, cond_ind_test, params): """Wrapper around PCMCI.run_pc_stable estimating the parents for a single variable j. Parameters ---------- j : int Variable index. Returns ------- j, pcmci_of_j, parents_of_j : tuple Variable index, PCMCI object, and parents of j """ N = dataframe.values.shape[1] # CondIndTest is initialized globally below # Further parameters of PCMCI as described in the documentation can be # supplied here: pcmci_of_j = PCMCI( dataframe=dataframe, cond_ind_test=cond_ind_test, selected_variables=[j], # var_names=var_names, verbosity=verbosity) # Run PC condition-selection algorithm. Also here further parameters can be # specified: if method_arg == 'pcmci': parents_of_j = pcmci_of_j.run_pc_stable( selected_links=params['selected_links'], tau_max=params['tau_max'], pc_alpha=params['pc_alpha'], ) elif method_arg == 'gc': parents_of_j = {} for i in range(N): if i == j: parents_of_j[i] = [ (var, -lag) for var in range(N) for lag in range(params['tau_min'], params['tau_max'] + 1) ] else: parents_of_j[i] = [] elif method_arg == 'corr': parents_of_j = {} for i in range(N): parents_of_j[i] = [] # We return also the PCMCI object because it may contain pre-computed # results can be re-used in the MCI step (such as residuals or null # distributions) return j, pcmci_of_j, parents_of_j
def run_pc_stable_parallel(j): """Wrapper around PCMCI.run_pc_stable estimating the parents for a single variable j. Parameters ---------- j : int Variable index. Returns ------- j, pcmci_of_j, parents_of_j : tuple Variable index, PCMCI object, and parents of j """ # CondIndTest is initialized globally below # Further parameters of PCMCI as described in the documentation can be # supplied here: pcmci_of_j = PCMCI( dataframe=dataframe, cond_ind_test=cond_ind_test, selected_variables=[j], verbosity=verbosity) # Run PC condition-selection algorithm. Also here further parameters can be # specified: parents_of_j = pcmci_of_j.run_pc_stable( selected_links=selected_links, tau_max=tau_max, pc_alpha=pc_alpha, ) # We return also the PCMCI object because it may contain pre-computed # results can be re-used in the MCI step (such as residuals or null # distributions) return j, pcmci_of_j, parents_of_j