Skip to content

PC: background_knowledge not strictly enforced (tiers & forbidden_edges); results vary by uc_rule / uc_priority #1343

@ravulapreethi

Description

@ravulapreethi

When using the PC algorithm with background_knowledge to learn a causal graph, the expectation is that when different tiers are assigned to nodes using bk.add_node_to_tier(GraphNode(name), 0), the nodes in the learned causal graph should respect the specified temporal order. However, I am observing back edges from higher tiers to lower tiers. The same issue occurs with forbidden_edges—edges marked as forbidden sometimes still appear.

pc_result = pc(data_np, alpha=0.05, indep_test_func=fisherz, background_knowledge=bk, uc_rule=2, uc_priority=2, labels=labels
)

From our observations, the learned graph is highly sensitive to the uc_rule and uc_priority parameters suggesting that these apparent violations may be related to the collider orientation step. Are there any established guidelines for selecting these parameters?

Also, is there a way to ensure that the constraints in background_knowledge are strictly enforced?

Name: dowhy
Version: 0.12

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions