Reference

Package comparison#

This table sets Andrey beside four other causal discovery packages: the data their methods read, what real data needs, how they use your hardware, and what an agent can drive. The release cards time and score each method against the same packages.

Andreycausal-learnTetradpcalgbnlearn
Coverage
Distinct methods452121810
Temporal dataYesYesYesNoNo
Mixed dataYesPartly1YesNoYes
Nonlinear dataYesYesYesNoNo
Interventional dataYesPartly2Partly3YesPartly4
Permutation invarianceYesNoPartly5NoNo
Real data
Missing valuesYesPartly6YesNoYes
Background knowledgeYesPartly7YesPartly8Yes
Edge confidenceYesPartly9YesNoYes
Speed
CPU parallelizationYesPartly10Partly11Partly12Partly13
GPU accelerationYesPartly14NoNoNo
Open benchmarksYesNoNoNoNo
Agentic
JSON command lineYesNoPartly15NoNo
Schema for every methodYesNoPartly16NoNo
Agent skillYesNoPartly17NoNo

Read from each package’s released code: causal-learn 0.1.4.8, Tetrad 7.6.10, pcalg 2.7-12, and bnlearn 5.2.1.

Notes#

  1. Mixed data, causal-learn. No mixed-data test or score; only KCI and the generalized score take category codes, and neither is built for them.
  2. Interventional data, causal-learn. CD-NOD only, for data from several domains, with no targets.
  3. Interventional data, Tetrad. Intervention variables tagged in a metadata file join the first knowledge tier as ordinary variables; no method takes the targets.
  4. Interventional data, bnlearn. The mbde score only, for categorical data in its score-based searches.
  5. Permutation invariance, Tetrad. PC and FCI follow the variables' names; BOSS, GRaSP, and GIN changed with the column order.
  6. Missing values, causal-learn. PC and CD-NOD only, with the Fisher-z test.
  7. Background knowledge, causal-learn. PC, FCI, CD-NOD, the LiNGAM methods, and exact search; GES, BOSS, and GRaSP take none.
  8. Background knowledge, pcalg. Fixed adjacencies only, with no directions or tiers.
  9. Edge confidence, causal-learn. Bootstrap edge probabilities for the LiNGAM methods only.
  10. CPU parallelization, causal-learn. Several CPU cores for RLCD and the FastKCI test only.
  11. CPU parallelization, Tetrad. Several threads for FGES, BOSS, GFCI, and PC's adjacency search.
  12. CPU parallelization, pcalg. Several cores for the skeleton step of its stable.fast method only.
  13. CPU parallelization, bnlearn. A cluster for its constraint-based methods and DirectLiNGAM only.
  14. GPU acceleration, causal-learn. CALM only.
  15. JSON command line, Tetrad. causal-cmd writes the graph, and only the graph, to a JSON file.
  16. Schema for every method, Tetrad. Typed parameter defaults and bounds, in an HTML manual.
  17. Agent skill, Tetrad. py-tetrad's development branch has a skill and guides; no release has them.

How the table is read#

  • Distinct methods counts each published algorithm that returns a whole graph once. A variant chosen by an argument, a version for several datasets, another score or test in the same search, and a wrapper count with the method they extend; a search that only orients a given graph does not count. Andrey’s 49 supported methods count as 45: gies with ges, multi_group_direct_lingam with direct_lingam, inter_iamb with iamb, and mmhc with rsmax2. Experimental methods do not count.

  • A feature counts when a released version has it. A hook for your own test or score is not an implementation, and a feature only on a development branch is not released.

  • A real-data feature is a yes when the package’s main learners have it, and partly when only some do. Interventional data is a yes when a method takes each row’s environment or the intervention targets.

  • Permutation invariance comes from the measurements in the 0.7.0 post, and open benchmarks from each package’s README, documentation, and release notes.