DAG¶
Copying¶
DAG.copy () |
Return a copy of the current DAG. |
DAG.rename_nodes (name_map, VT]) |
Rename the nodes in this graph according to name_map . |
DAG.induced_subgraph (nodes) |
Return the induced subgraph over only nodes |
Information about nodes¶
DAG.parents_of (nodes, Set[Hashable]]) |
Return all nodes that are parents of the node or set of nodes nodes . |
DAG.children_of (nodes, Set[Hashable]]) |
Return all nodes that are children of the node or set of nodes nodes . |
DAG.neighbors_of (nodes, Set[Hashable]]) |
Return all nodes that are adjacent to the node or set of nodes node . |
DAG.markov_blanket_of (node) |
Return the Markov blanket of node , i.e., the parents of the node, its children, and the parents of its children. |
DAG.ancestors_of (nodes) |
Return the ancestors of nodes . |
DAG.descendants_of (nodes, Set[Hashable]]) |
Return the descendants of node . |
DAG.indegree_of (node) |
Return the indegree of node . |
DAG.outdegree_of (node) |
Return the outdegree of node . |
DAG.incoming_arcs (node) |
Return all arcs with target node . |
DAG.outgoing_arcs (node) |
Return all arcs with source node . |
DAG.incident_arcs (node) |
Return all arcs with node as either source or target. |
Graph modification¶
DAG.add_node (node) |
Add node to the DAG. |
DAG.add_nodes_from (nodes) |
Add nodes to the graph from the collection nodes . |
DAG.remove_node (node[, ignore_error]) |
Remove the node node from the graph. |
DAG.add_arc (i, j[, check_acyclic]) |
Add the arc i -> j to the DAG |
DAG.add_arcs_from (arcs[, check_acyclic]) |
Add arcs to the graph from the collection arcs . |
DAG.remove_arc (i, j[, ignore_error]) |
Remove the arc i -> j . |
DAG.reverse_arc (i, j[, ignore_error, …]) |
Reverse the arc i -> j to i <- j . |
Graph properties¶
DAG.has_arc (source, target) |
Check if this DAG has an arc source -> target . |
DAG.sources () |
Get all nodes in the graph that have no parents. |
DAG.sinks () |
Get all nodes in the graph that have no children. |
DAG.reversible_arcs () |
Get all reversible (aka covered) arcs in the DAG. |
DAG.is_reversible (i, j) |
Check if the arc i -> j is reversible (aka covered), i.e., if |
DAG.arcs_in_vstructures () |
Get all arcs in the graph that participate in a v-structure. |
DAG.vstructures () |
Get all v-structures in the graph, i.e., triples of the form (i, k, j) such that i ->k<-j and i is not adjacent to j . |
DAG.triples () |
Return all triples of the form (i , j , k ) such that i and k are both adjacent to j . |
DAG.upstream_most (s) |
Return the set of nodes which in s which have no ancestors in s . |
Ordering¶
DAG.topological_sort () |
Return a topological sort of the nodes in the graph. |
DAG.is_topological (order) |
Check that order is a topological order consistent with this DAG, i.e., if i ->``j`` in the DAG, then i comes before j in the order. |
DAG.permutation_score (order) |
Return the number of “errors” in order with respect to the DAG, i.e., the number of times that i ->``j`` in the DAG but i comes after j in order . |
Comparison to other DAGs¶
DAG.shd (other) |
Compute the structural Hamming distance between this DAG and the DAG other . |
DAG.shd_skeleton (other) |
Compute the structure Hamming distance between the skeleton of this DAG and the skeleton of the graph other . |
DAG.markov_equivalent (other[, interventions]) |
Check if this DAG is (interventionally) Markov equivalent to the DAG other . |
DAG.is_imap (other) |
Check if this DAG is an IMAP of the DAG other , i.e., all d-separation statements in this graph are also d-separation statements in other . |
DAG.is_minimal_imap (other[, certify, check_imap]) |
Check if this DAG is a minimal IMAP of other, i.e., it is an IMAP and no proper subgraph of this DAG is an IMAP of other. |
DAG.chickering_distance (other) |
Return the total number of edge reversals plus twice the number of edge additions/deletions required to turn this DAG into the DAG other . |
DAG.confusion_matrix (other[, rates_only]) |
Return the “confusion matrix” associated with estimating the CPDAG of other instead of the CPDAG of this DAG. |
DAG.confusion_matrix_skeleton (other) |
Return the “confusion matrix” associated with estimating the skeleton of other instead of the skeleton of this DAG. |
Separation statements¶
DAG.dsep (A, Hashable], B, Hashable], C, …) |
Check if A and B are d-separated given C , using the Bayes ball algorithm. |
DAG.dsep_from_given (A, C, …) |
Find all nodes d-separated from A given C . |
DAG.is_invariant (A, intervened_nodes[, …]) |
Check if the distribution of A given cond_set is invariant to an intervention on intervened_nodes. |
DAG.local_markov_statements () |
Return the local Markov statements of this DAG, i.e., those of the form i independent nondescendants(i) given the parents of i . |
Conversion to other formats¶
DAG.from_amat (amat) |
Return a DAG with arcs given by amat , i.e. |
DAG.to_amat ([node_list]) |
Return an adjacency matrix for this DAG. |
DAG.from_nx (nx_graph) |
Convert a networkx DiGraph into a DAG. |
DAG.to_nx () |
Convert DAG to a networkx DiGraph. |
DAG.from_dataframe (df) |
Create a DAG from a dataframe, where the indices and columns are node names and a nonzero entry indicates the presence of an edge. |
DAG.to_dataframe ([node_list]) |
Turn this DAG into a dataframe, where the indices and columns are node names and a nonzero entry indicates the presence of an edge. |
Conversion to other graphs¶
DAG.moral_graph () |
Return the (undirected) moral graph of this DAG, i.e., the graph with the parents of all nodes made adjacent. |
DAG.marginal_mag (latent_nodes[, relabel, new]) |
Return the maximal ancestral graph (MAG) that results from marginalizing out latent_nodes . |
DAG.cpdag () |
Return the completed partially directed acyclic graph (CPDAG, aka essential graph) that represents the Markov equivalence class of this DAG. |
DAG.interventional_cpdag (interventions[, cpdag]) |
Return the interventional essential graph (aka CPDAG) associated with this DAG. |
Chickering Sequences¶
DAG.resolved_sinks (other) |
Return the nodes in this graph which are “resolved sinks” with respect to the graph other . |
DAG.chickering_sequence (imap[, verbose]) |
Return a Chickering sequence from this DAG to an I-MAP imap . |
DAG.apply_edge_operation (imap[, seed_sink, …]) |
Identify an edge operation (covered edge reversal or edge addition) which decreases the Chickering distance from this DAG to imap . |
Directed Clique Trees¶
DAG.directed_clique_tree ([verbose]) |
Return the directed clique tree associated with this DAG. |
DAG.contracted_directed_clique_tree () |
Return the contracted directed clique tree associated with this DAG. |
DAG.residuals () |
Return the residuals associated with this DAG. |
DAG.residual_essential_graph () |
Return the residual essential graph associated with this DAG. |
Intervention Design¶
DAG.optimal_fully_orienting_single_node_interventions ([…]) |
Find the smallest set of interventions which fully orients the CPDAG into this DAG. |
DAG.greedy_optimal_single_node_intervention ([…]) |
Greedily pick num_interventions single node interventions based on how many edges they orient. |
DAG.greedy_optimal_fully_orienting_interventions ([cpdag]) |
Find a set of interventions which fully orients a CPDAG into this DAG, using greedy selection of the interventions. |