bdgraph {BDgraph} | R Documentation |
Search algorithm in graphical models
Description
As the main function of the BDgraph package,
this function consists of several MCMC sampling algorithms for Bayesian model determination in undirected graphical models.
To speed up the computations, the birth-death MCMC sampling algorithms are implemented in parallel using OpenMP in C++
.
Usage
bdgraph( data, n = NULL, method = "ggm", algorithm = "bdmcmc", iter = 5000,
burnin = iter / 2, not.cont = NULL, g.prior = 0.2, df.prior = 3,
g.start = "empty", jump = NULL, save = FALSE,
cores = NULL, threshold = 1e-8, verbose = TRUE, nu = 1 )
Arguments
data |
there are two options: (1) an ( |
n |
number of observations. It is needed if the " |
method |
character with two options " |
algorithm |
character with two options " |
iter |
number of iteration for the sampling algorithm. |
burnin |
number of burn-in iteration for the sampling algorithm. |
not.cont |
for the case |
g.prior |
for determining the prior distribution of each edge in the graph.
There are two options: a single value between |
df.prior |
degree of freedom for G-Wishart distribution, |
g.start |
corresponds to a starting point of the graph. It could be an ( |
jump |
it is only for the BDMCMC algorithm ( |
save |
logical: if FALSE (default), the adjacency matrices are NOT saved. If TRUE, the adjacency matrices after burn-in are saved. |
cores |
number of cores to use for parallel execution.
The case |
threshold |
threshold value for the convergence of sampling algorithm from G-Wishart for the precision matrix. |
verbose |
logical: if TRUE (default), report/print the MCMC running time. |
nu |
prior parameter for option |
Value
An object with S3
class "bdgraph
" is returned:
p_links |
upper triangular matrix which corresponds the estimated posterior probabilities of all possible links. |
K_hat |
posterior estimation of the precision matrix. |
For the case "save
= TRUE
" is returned:
sample_graphs |
vector of strings which includes the adjacency matrices of visited graphs after burn-in. |
graph_weights |
vector which includes the waiting times of visited graphs after burn-in. |
all_graphs |
vector which includes the identity of the adjacency matrices for all iterations after burn-in. It is needed for monitoring the convergence of the BD-MCMC algorithm. |
all_weights |
vector which includes the waiting times for all iterations after burn-in. It is needed for monitoring the convergence of the BD-MCMC algorithm. |
Author(s)
Reza Mohammadi a.mohammadi@uva.nl and Ernst Wit
References
Mohammadi, R. and Wit, E. C. (2019). BDgraph: An R
Package for Bayesian Structure Learning in Graphical Models, Journal of Statistical Software, 89(3):1-30, doi:10.18637/jss.v089.i03
Mohammadi, A. and Wit, E. C. (2015). Bayesian Structure Learning in Sparse Gaussian Graphical Models, Bayesian Analysis, 10(1):109-138, doi:10.1214/14-BA889
Mohammadi, R., Massam, H. and Letac, G. (2021). Accelerating Bayesian Structure Learning in Sparse Gaussian Graphical Models, Journal of the American Statistical Association, doi:10.1080/01621459.2021.1996377
Mohammadi, A. et al (2017). Bayesian modelling of Dupuytren disease by using Gaussian copula graphical models, Journal of the Royal Statistical Society: Series C, 66(3):629-645, doi:10.1111/rssc.12171
Dobra, A. and Mohammadi, R. (2018). Loglinear Model Selection and Human Mobility, Annals of Applied Statistics, 12(2):815-845, doi:10.1214/18-AOAS1164
Mohammadi, A. and Dobra A. (2017). The R
Package BDgraph for Bayesian Structure Learning in Graphical Models, ISBA Bulletin, 24(4):11-16
See Also
bdgraph.mpl
, bdgraph.dw
, bdgraph.sim
, summary.bdgraph
, compare
Examples
## Not run:
set.seed( 10 )
# - - Example 1
# Generating multivariate normal data from a 'random' graph
data.sim <- bdgraph.sim( n = 100, p = 10, size = 15, vis = TRUE )
bdgraph.obj <- bdgraph( data = data.sim, iter = 1000, save = TRUE )
summary( bdgraph.obj )
# Confusion Matrix
conf.mat( actual = data.sim, pred = bdgraph.obj )
conf.mat.plot( actual = data.sim, pred = bdgraph.obj )
# To compare our result with true graph
compare( bdgraph.obj, data.sim, main = c( "Target", "BDgraph" ), vis = T )
# Running algorithm with starting points from previous run
bdgraph.obj2 <- bdgraph( data = data.sim, g.start = bdgraph.obj )
compare( list( bdgraph.obj, bdgraph.obj2 ), data.sim,
main = c( "Target", "Frist run", "Second run" ) )
# - - Example 2
# Generating mixed data from a 'scale-free' graph
data.sim <- bdgraph.sim( n = 200, p = 7, type = "mixed", graph = "scale-free", vis = TRUE )
bdgraph.obj <- bdgraph( data = data.sim, method = "gcgm" )
summary( bdgraph.obj )
compare( bdgraph.obj, data.sim, vis = T )
conf.mat( actual = data.sim, pred = bdgraph.obj )
conf.mat.plot( actual = data.sim, pred = bdgraph.obj )
## End(Not run)