constraint-based algorithms {bnlearn} R Documentation

## Constraint-based structure learning algorithms

### Description

Learn the equivalence class of a directed acyclic graph (DAG) from data using the PC, Grow-Shrink (GS), Incremental Association (IAMB), Fast Incremental Association (Fast-IAMB), Interleaved Incremental Association (Inter-IAMB), Incremental Association with FDR (IAMB-FDR), Max-Min Parents and Children (MMPC), Semi-Interleaved HITON-PC or Hybrid Parents and Children (HPC) constraint-based algorithms.

### Usage

```pc.stable(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
gs(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
iamb(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
fast.iamb(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
inter.iamb(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
iamb.fdr(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = FALSE)
mmpc(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = TRUE)
si.hiton.pc(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = TRUE)
hpc(x, cluster = NULL, whitelist = NULL, blacklist = NULL, test = NULL,
alpha = 0.05, B = NULL, max.sx = NULL, debug = FALSE, undirected = TRUE)
```

### Arguments

 `x` a data frame containing the variables in the model. `cluster` an optional cluster object from package parallel. `whitelist` a data frame with two columns (optionally labeled "from" and "to"), containing a set of arcs to be included in the graph. `blacklist` a data frame with two columns (optionally labeled "from" and "to"), containing a set of arcs not to be included in the graph. `test` a character string, the label of the conditional independence test to be used in the algorithm. If none is specified, the default test statistic is the mutual information for categorical variables, the Jonckheere-Terpstra test for ordered factors and the linear correlation for continuous variables. See `bnlearn-package` for details. `alpha` a numeric value, the target nominal type I error rate. `B` a positive integer, the number of permutations considered for each permutation test. It will be ignored with a warning if the conditional independence test specified by the `test` argument is not a permutation test. `max.sx` a positive integer, the maximum allowed size of the conditioning sets used in conditional independence tests. The default is that there is no limit on size. `debug` a boolean value. If `TRUE` a lot of debugging output is printed; otherwise the function is completely silent. `undirected` a boolean value. If `TRUE` no attempt will be made to determine the orientation of the arcs; the returned (undirected) graph will represent the underlying structure of the Bayesian network.

### Value

An object of class `bn`. See `bn-class` for details.

### Note

Note that even when `undirected` is set to `FALSE` there is no guarantee that all arcs in the returned network will be directed; some arc directions are impossible to learn just from data due to score equivalence.

Marco Scutari

### References

for PC:

Colombo D, Maathuis MH (2014). "Order-Independent Constraint-Based Causal Structure Learning". Journal of Machine Learning Research, 15:3921–3962.

for GS:

Margaritis D (2003). Learning Bayesian Network Model Structure from Data. Ph.D. thesis, School of Computer Science, Carnegie-Mellon University, Pittsburgh, PA.

for IAMB:

Tsamardinos I, Aliferis CF, Statnikov A (2003). "Algorithms for Large Scale Markov Blanket Discovery". Proceedings of the Sixteenth International Florida Artificial Intelligence Research Society Conference, pp. 376–381.

for Fast-IAMB and Inter-IAMB:

Yaramakala S, Margaritis D (2005). "Speculative Markov Blanket Discovery for Optimal Feature Selection". Proceedings of the Fifth IEEE International Conference on Data Mining, pp. 809–812.

for IAMB-FDR:

Pena JM (2008). "Learning Gaussian Graphical Models of Gene Networks with False Discovery Rate Control". Proceedings of the iSixth European Conference on Evolutionary Computation, Machine Learning and Data Mining in Bioinformatics, pp. 165–176.

for MMPC:

Tsamardinos I, Aliferis CF, Statnikov A (2003). "Time and Sample Efficient Discovery of Markov Blankets and Direct Causal Relations". Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 673–678.

Tsamardinos I, Brown LE, Aliferis CF (2006). "The Max-Min Hill-Climbing Bayesian Network Structure Learning Algorithm". Machine Learning, 65(1):31–78.

for the Semi-Interleaved HITON-PC:

Aliferis FC, Statnikov A, Tsamardinos I, Subramani M, Koutsoukos XD (2010). "Local Causal and Markov Blanket Induction for Causal Discovery and Feature Selection for Classification Part I: Algorithms and Empirical Evaluation". Journal of Machine Learning Research, 11:171–234.

for HPC:

Gasse M, Aussem A, Elghazel H (2014). "A Hybrid Algorithm for Bayesian Network Structure Learning with Application to Multi-Label Learning". Expert Systems with Applications, 41(15):6755–6772.