Algorithms

Benchpress provides access to a wide range of open-source packages for causal discovery and structure learning such as pcalg, BDgraph, gCastle, TETRAD, bnlearn, causal-learn, and many others, making it easy to use and compare different algorithms within a unified framework. The algorithms are accesed through their corresponding modules, which are listed below. To use an algorithm module, a section with the corresponding name is simply added to the structure_learning_algorithms section of the JSON config file. Sample JSON snippets are provided for each module and you may also review JSON config to see how it works.

The algorithm parameters used in the modules are inherited from the underlying packages as much as possible, maintaining consistency with the original implementations. This means that users familiar with the original packages can easily transfer their knowledge and existing configurations to Benchpress. Users can also refer to the documentation of the underlying packages (linked to in each module) to better understand the parameters and their effects. Apart from the original parameters, each algorithm module is equipped with an additional parameter, timeout, which is the maximum time in seconds allowed for the algorithm to run. After the timeout, the algorithm will be terminated and either an empty file will be created or the current best graph will be saved (if the algorithm supports that).

Modules for MCMC algorithms can be used seamlessly with the other modules. However, apart from the original parameters and timeout, these modules have four additional fields:

  • mcmc_seed is the random seed for the algorithm.

  • mcmc_estimator specifies which estimator to use (threshold or map).

  • threshold specifies the threshold for the posterior edge probabilities if mcmc_estimator is set to threshold.

  • burnin_frac is a value in (0, 1) that specifies the fraction of the samples at the beginning of the graph trajectory to be discarded as burn-in.

Algorithm

Package

Graph

Data

MCMC

Edge constraints

Data missingness

Intervention type

ANMNonlinear

gCastle

DAG

C, D

ASOBS

r.blip

DAG

D

BDgraph

BDgraph

UG

C, D, M

Yes

MCAR

BOSS

TETRAD

CPDAG

C, D

Yes

Chordal graph samplers

A. Thomas

DG

C, D

Yes

Corrmat thresh

Benchpress

UG

C

Direct LINGAM

gCastle

DAG

C

Dual PC

dualPC

CG, CPDAG

C

FASK

TETRAD

DAG

C, D

Yes

FGES

TETRAD

CPDAG

C, D

Yes

FOFC

TETRAD

DAG

C, D

Yes

FTFC

TETRAD

DAG

C, D

Yes

Fast IAMB

bnlearn

DAG

C, D, M

Yes

GAE

gCastle

DAG

C

GIES

pcalg

CPDAG

C

Yes

hard

GLasso

scikit-learn

UG

C

GLasso

huge

UG

C

GOBNILP

GOBNILP

DAG

C, D

Yes

GOLEM

gCastle

DAG

C

GRaSP

causal-learn

CPDAG

C, D

GRaSP

TETRAD

CPDAG

C, D

Yes

GS

bnlearn

DAG

C, D, M

Yes

GSP

CausalDAG

DAG

C

GrUES

gues

UDG

C

Yes

GraNDAG

gCastle

DAG

C

H2PC

bnlearn

DAG

C, D, M

Yes

HC

bnlearn

DAG

C, D, M

Yes

HPC

bnlearn

DAG

C, D, M

Yes

IAMB

bnlearn

DAG

C, D, M

Yes

IAMB-FDR

bnlearn

DAG

C, D, M

Yes

ICA-LiNGAM

gCastle

DAG

C

ICA-LiNGAM

TETRAD

DAG

C

Yes

INTER-IAMB

bnlearn

DAG

C, D, M

Yes

Iterative MCMC

BiDAG

DAG, CPDAG

C, D

Yes

Yes

M&B cov est

huge

UG

C

MCSL

gCastle

DAG

C

MICE

mice

C, D, M

MMHC

bnlearn

DAG

C, D, M

Yes

MMPC

bnlearn

DAG

C, D, M

Yes

MVPC

MVPC

CPDAG

C, D

Yes

MAR, MNAR, MCAR

NO TEARS

gCastle

DAG

C

NO TEARS low rank

gCastle

DAG

C

NO TEARS non-linear

gCastle

DAG

C

Order MCMC

BiDAG

DAG, CPDAG

C, D

Yes

Yes

PC

pcalg

CPDAG, CG

C, D

Yes

PC

bnlearn

DAG

C, D, M

Yes

PC

TETRAD

DAG

C, D, M

Yes

PC

gCastle

DAG

C

Parallel DG

parallelDG

DG

C, D

Yes

Particle Gibbs

trilearn

DG

C, D

Yes

Partition MCMC

BiDAG

DAG, CPDAG

C, D

Yes

Yes

Precmat thresh

Benchpress

UG

C

Psi-learning

equSA

UG

C

PyAgrum

pyagrum

DAG

B

RSMAX2

bnlearn

DAG

C, D, M

Yes

S-I HITON-PC

bnlearn

DAG

C, D, M

Yes

TIGER

huge

UG

C

TPC

tpc

CPDAG, MPDAG, TMPDAG

C, D, M

Yes

MAR, MNAR, MCAR

Tabu

bnlearn

DAG

C, D, M

Yes