This function consists of several sampling algorithms for Bayesian model determination in undirected graphical models based on mariginal pseudo-likelihood.
To speed up the computations, the birth-death MCMC sampling algorithms are implemented in parallel using OpenMP in C++
.
bdgraph.mpl( data, n = NULL, method = "ggm", transfer = TRUE,
algorithm = "bdmcmc", iter = 5000, burnin = iter / 2,
g.prior = 0.5, g.start = "empty",
jump = NULL, alpha = 0.5, save = FALSE,
print = 1000, cores = NULL, operator = "or" )
There are two options: (1) an (\(n \times p\)) matrix or a data.frame
corresponding to the data,
(2) an (\(p \times p\)) covariance matrix as \(S=X'X\) which \(X\) is the data matrix
(\(n\) is the sample size and \(p\) is the number of variables).
It also could be an object of class "sim"
, from function bdgraph.sim
.
The input matrix is automatically identified by checking the symmetry.
The number of observations. It is needed if the "data"
is a covariance matrix.
A character with two options "ggm"
(default), "dgm"
and "dgm-binary"
.
Option "ggm"
is for Gaussian graphical models based on Gaussianity assumption.
Option "dgm"
is for discrete graphical models for the data that are discrete.
Option "dgm-binary"
is for discrete graphical models for the data that are binary.
For only discrete data which method = "dgm"
or method = "dgm-binary"
.
A character with two options "bdmcmc"
(default) and "rjmcmc"
.
Option "bdmcmc"
is based on birth-death MCMC algorithm.
Option "rjmcmc"
is based on reverible jump MCMC algorithm.
Option "hc"
is based on hill-climbing algorithm; this algorithm is only for discrete data which method = "dgm"
or method = "dgm-binary"
.
The number of iteration for the sampling algorithm.
The number of burn-in iteration for the sampling algorithm.
For determining the prior distribution of each edge in the graph. There are two options: a single value between \(0\) and \(1\) (e.g. \(0.5\) as a noninformative prior) or an (\(p \times p\)) matrix with elements between \(0\) and \(1\).
Corresponds to a starting point of the graph. It could be an (\(p \times p\)) matrix, "empty"
(default), or "full"
.
Option "empty"
means the initial graph is an empty graph and "full"
means a full graph.
It also could be an object with S3
class "bdgraph"
of R
package BDgraph
or the class "ssgraph"
of R
package ssgraph
;
this option can be used to run the sampling algorithm from the last objects of previous run (see examples).
It is only for the BDMCMC algorithm (algorithm = "bdmcmc"
).
It is for simultaneously updating multiple links at the same time to update graph in the BDMCMC algorithm.
Value of the hyper parameter of Dirichlet, which is a prior distribution.
Logical: if FALSE (default), the adjacency matrices are NOT saved. If TRUE, the adjacency matrices after burn-in are saved.
Value to see the number of iteration for the MCMC algorithm.
The number of cores to use for parallel execution.
The case cores="all"
means all CPU cores to use for parallel execution.
A character with two options "or"
(default) and "and"
. It is for hill-climbing algorithm.
An object with S3
class "bdgraph"
is returned:
An upper triangular matrix which corresponds the estimated posterior probabilities of all possible links.
A vector of strings which includes the adjacency matrices of visited graphs after burn-in.
A vector which includes the waiting times of visited graphs after burn-in.
A 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.
A vector which includes the waiting times for all iterations after burn-in. It is needed for monitoring the convergence of the BD-MCMC algorithm.
Dobra, A. and Mohammadi, R. (2018). Loglinear Model Selection and Human Mobility, Annals of Applied Statistics, 12(2):815-845
Mohammadi, A. and Wit, E. C. (2015). Bayesian Structure Learning in Sparse Gaussian Graphical Models, Bayesian Analysis, 10(1):109-138
Mohammadi, A. and Dobra, A. (2017). The R
Package BDgraph for Bayesian Structure Learning in Graphical Models, ISBA Bulletin, 24(4):11-16
Pensar, J. et al (2017) Marginal pseudo-likelihood learning of discrete Markov network structures, Bayesian Analysis, 12(4):1195-215
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
# NOT RUN {
# Generating multivariate normal data from a 'random' graph
data.sim <- bdgraph.sim( n = 70, p = 5, size = 7, vis = TRUE )
bdgraph.obj <- bdgraph.mpl( data = data.sim, iter = 500 )
summary( bdgraph.obj )
# To compare the result with true graph
compare( data.sim, bdgraph.obj, main = c( "Target", "BDgraph" ) )
# }
Run the code above in your browser using DataLab