ICA-LiNGAM (gCastle)

Module name

gcastle_ica_lingam

Package

gCastle

Version

1.0.3

Language

Python

Docs

here

Paper

Shimizu et al.[1]

Graph type

DAG

MCMC

No

Edge constraints

No

Data type

C

Data missingness

Intervention type

Docker

bpimages/gcastle:1.0.3

Independent component analysis for linear non-Gaussian acyclic models

Abstract: In recent years, several methods have been proposed for the discovery of causal structure from non-experimental data. Such methods make various assumptions on the data generating process to facilitate its identification from purely observational data. Continuing this line of research, we show how to discover the complete causal structure of continuous-valued data, under the assumptions that (a) the data generating process is linear, (b) there are no unobserved confounders, and (c) disturbance variables have non-Gaussian distributions of non-zero variances. The solution relies on the use of the statistical method known as independent component analysis, and does not require any pre-specified time-ordering of the variables.

Example

Config file: gcastle.json

Command:

snakemake --cores all --use-apptainer --configfile config/gcastle.json

Fig. 50 shows the pattern graph’s FP/P vs. TP/P benchmark results for 12 gCastle algorithms (and comparison with BOSS (TETRAD) and Iterative MCMC (BiDAG)). The benchmark is based on 5 datasets corresponding to 5 realisations of a 20-variable random Gaussian SEM with Erdős-Rényi structure (expected degree 4, max parents 5). Each dataset contains 300 standardized samples. The SEM parameters are uniformly sampled from [0.25, 1].

FP/P vs. TP/P for gCastle algorithms

Fig. 38 FP/P vs. TP/P for gCastle algorithms.

Example JSON

[
  {
    "id": "gcastle_ica_lingam",
    "thresh": 0.3,
    "random_state": null,
    "max_iter": 1000,
    "timeout": null
  }
]