Choosing a causal discovery method

Which causal discovery method suits your data: a decision sketch, the assumptions of each family (PC, FCI, GES, BOSS, GRaSP, LiNGAM, SCORE), and why comparing two methods beats trusting one.

Start with three questions

Every method makes assumptions. The right one is the method whose assumptions your data comes closest to. Three questions decide most cases:

  1. Could an important cause be missing from the table? If yes, use a method that allows for hidden causes.
  2. Are the relationships roughly linear? Straight-line relationships suit the classical methods; curved ones need methods built for them.
  3. Is the noise bell-shaped? If the variation around the relationships is skewed or heavy-tailed, that asymmetry can reveal directions.
A first choice, then a comparison

A first choice, then a comparison

Hand-drawn decision sketch: hidden causes suggest FCI; roughly linear data with skewed noise suggests DirectLiNGAM, otherwise PC, GES, BOSS or GRaSP; non-linear data suggests SCORE, DAS, NoGAM or a UCMT model; then compare methods

The families at a glance

FamilyMethods in UCMT LabsAssumesReturns
Constraint-basedPC, FCIIndependence tests that fit the data (Fisher-z: roughly linear, bell-shaped noise)PC: a graph with some links undirected. FCI: also marks where a hidden cause may act
Score-basedGES, BOSS, GRaSPA score (BIC) that fits the data; no hidden common causesA graph with some links undirected
Ordering-basedSCORE, DAS, NoGAMNon-linear relationships with additive noiseA fully directed graph
Continuous optimisationDAGMA (linear)Linear relationshipsA fully directed graph with weights
Non-GaussianICA-LiNGAM, DirectLiNGAMLinear relationships, noise that is not bell-shaped, no hidden common causesA fully directed graph with weights
UCMT modelsUCMT v2 Global, UCMT V3 (experimental), UCMT V4 (experimental)UCMT Labs' own modelsA graph, with built-in checks reported after the run

Each established method has its own guide: PC, FCI, GES, BOSS and GRaSP, LiNGAM.

How to check your data

  • Linear or not: plot a few pairs you know are related. Curves, thresholds or saturation mean non-linear.
  • Bell-shaped or not: look at a histogram of a variable after removing its obvious trend. Long tails or a strong skew mean non-Gaussian.
  • Hidden causes: list what drives your outcome in reality. Anything important that is not a column is a hidden cause.
  • Size: methods need more rows as columns grow. UCMT Labs warns when a dataset has fewer than 500 rows.

UCMT Labs runs a data check on upload that looks at these properties and suggests a starting method and a comparison method, with the reasons. It is a suggestion, not a verdict: you can always choose another method.

Compare, don't trust one method

No method is right on every dataset, and each one fails in its own way. Run two or more methods with different assumptions on the same data:

  • Links that every method finds are the firmest candidates.
  • Links only one method finds depend on that method's assumptions; check them before acting.
  • Links whose direction flips between methods need knowledge or an experiment to settle.

In UCMT Labs, Compare runs several methods side by side on every plan, and consensus discovery (Professional and Enterprise) keeps the links enough methods agree on. Agreement between methods makes a link more credible; it does not prove it.

A practical routine

  1. Clean the table: one row per observation, numbers only, no IDs.
  2. Run the suggested starting method.
  3. Run one method from a different family.
  4. Keep the links both find; list the disputed ones.
  5. Check the disputed ones against what you know, or plan a small test.
  6. Ask your what-if questions on the graph you trust.