grues
GrUES
Package |
|
Version |
0.3.0 |
Language |
|
Docs |
|
Paper |
Deligeorgaki et al.[1] |
Graph type |
|
Docker |
|
Module folder |
Description
Abstract: We consider the problem of estimating the marginal independence structure of a Bayesian network from observational data in the form of an undirected graph called the unconditional dependence graph. We show that unconditional dependence graphs of Bayesian networks correspond to the graphs having equal independence and intersection numbers. Using this observation, a Gröbner basis for a toric ideal associated to unconditional dependence graphs of Bayesian networks is given and then extended by additional binomial relations to connect the space of all such graphs. An MCMC method, called GrUES (Gröbner-based Unconditional Equivalence Search), is implemented based on the resulting moves and applied to synthetic Gaussian data. GrUES recovers the true marginal independence structure via a penalized maximum likelihood or MAP estimate at a higher rate than simple independence tests while also yielding an estimate of the posterior, for which the 20% HPD credible sets include the true structure at a high rate for data-generating graphs with density at least 0.5.
Example
Config file: grues_vs_corr-thresh.json
Command:
snakemake --cores all --use-singularity --configfile workflow/rules/structure_learning_algorithms/grues/grues_vs_corr-thresh.json
Fig. 26 shows the ROC and Fig. 27 shows the SHD comparing GrUES to correlation thresholding for datsets from five different graphs corresponding to a 5-variable random Gaussian SEM whose nodes have average degree of 1 and whose edge weights were allowed to be close to 0. Each dataset contains 300 observations and each Markov chain has 10000 observations. Note that SHD between a learned UDG and true CPDAG is not the most reasonable comparison because an inflated FPR will be reported—see Deligeorgaki et al.[1] for discussion and a more reasonable benchmark.
Fig. 28 shows that GrUES estimates the correct UDG while correlation thresholding (Fig. 29) misses the edge 1—2.
Example JSON
[
{
"id": "grues",
"burnin_frac": 0.5,
"mcmc_estimator": "threshold",
"mcmc_seed": [
1,
2,
3
],
"threshold": 0.5,
"timeout": null
}
]