import numpy as np
from causallearn.search.ConstraintBased.PC import pc
rng = np.random.default_rng(0); N = 2000
A = rng.standard_normal(N); D = rng.standard_normal(N)
B = 0.8 * A + rng.standard_normal(N)
C = 0.7 * B - 0.6 * D + rng.standard_normal(N)
E = 0.9 * C + rng.standard_normal(N)
cg = pc(np.c_[A, B, C, D, E], alpha=0.01, indep_test="fisherz",
node_names=list("ABCDE"), show_progress=False)
print(cg.G)Graph Nodes:
A;B;C;D;E
Graph Edges:
1. A --- B
2. B --> C
3. D --> C
4. C --> E

