| Title: | Structural Bayesian Information Criterion for Graphical Models | 
| Version: | 1.0.0 | 
| Description: | This is the implementation of the novel structural Bayesian information criterion by Zhou, 2020 (under review). In this method, the prior structure is modeled and incorporated into the Bayesian information criterion framework. Additionally, we also provide the implementation of a two-step algorithm to generate the candidate model pool. | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| Imports: | glmnet, MASS, network | 
| RoxygenNote: | 7.1.1 | 
| Suggests: | knitr, rmarkdown | 
| VignetteBuilder: | knitr | 
| NeedsCompilation: | no | 
| Packaged: | 2021-03-01 16:13:33 UTC; quang | 
| Author: | Quang Nguyen | 
| Maintainer: | Quang Nguyen <Quang.P.Nguyen.GR@dartmouth.edu> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-03-02 19:10:09 UTC | 
Enrichment step for constructing the model pool
Description
This is the esnrichment step in the two-step algorithm to construct the model pool (internal use only)
Usage
addition(data, lambda, P)
Arguments
| data | An  | 
| lambda | Vector of tuning parameter | 
| P | Prior adjacency matrix | 
Value
A list of model objects
Author(s)
Jie Zhou
Comparing the real and estimated adjacency matrix
Description
Comparing the two adjacency matrices for false discovery rate and positive selection rate. Used for model validation
Usage
comparison(real, estimate)
Arguments
| real | The real matrix  | 
| estimate | The estimated matrix  | 
Value
A list of the following evaluation metrics
| PSR | Positive Selection Rate | 
| FDR | False Discovery rate | 
Author(s)
Jie Zhou
Pruning step for constructing the model pool
Description
This is the pruning step in the two-step algorithm to construct the model pool (internal use only)
Usage
deletion(data, lambda, P)
Arguments
| data | An  | 
| lambda | Vector of tuning parameter | 
| P | Prior adjacency matrix | 
Value
A list of model objects
Author(s)
Jie Zhou
Estimate the precision matrix for multivariate normal distribution with given adjacency matrix using maximum likelihood
Description
This function find the maximum likelihood estimate of the precision matrix with given adjacency matrix for multivariate normal distribution.
Usage
mle(data, priori)
Arguments
| data | An  | 
| priori | A  | 
Details
The methods are based on the relationship between precision matrix of the multivariate normal distribution and regression coefficients.
Value
Returns a p by p matrix estimate of the precision matrix
Author(s)
Jie Zhou
Examples
  set.seed(1)
  d=simulate(n=100,p=200, m1=100, m2=30)
  data=d$data
  priori=d$realnetwork
  precision=mle(data=data,priori=priori)
Construct model pool using the two-step algorithm
Description
For a given prior graph, the two-step algorithm, including edge enrichment and pruning, is used to construct the model pool
Usage
modelset(data, lambda, P)
Arguments
| data | A  | 
| lambda | Tuning parameter vector | 
| P | Prior adjacency matrix | 
Value
A list including all the candidate models in the model pool. 
Each model is represented by a p by p adjacency matrix
Author(s)
Jie Zhou
Examples
  set.seed(1)
  d=simulate(n=100, p=100, m1 = 100, m2 = 30)
  data=d$data
  P=d$priornetwork
  lambda=exp(seq(-5,5,length=100))
  candidates=modelset(data=data,lambda=lambda, P=P)
Structural Bayesian information criterion for multivariate normal data with a given graph structure
Description
This function estimates the novel structural Bayesian information criterion given the data and a given graph structure
Usage
sbic(data, theta, prob, P)
Arguments
| data | A  | 
| theta | The  | 
| prob | The expected error rate | 
| P | The prior adjacency matrix | 
Value
The value of sbic with given temperature parameter and prior adjacency matrix
Author(s)
Jie Zhou
Examples
  set.seed(1)
  d=simulate(n=100, p=100, m1 = 100, m2 = 30)
  data=d$data
  P=d$priornetwork
  theta=d$realnetwork
  prob=0.15
  index=sbic(data=data, theta=theta, prob=prob, P=P)
Model selection of Gaussian graphical model based on SBIC
Description
Select the model based on the SBIC criterion and the two-step algorithm
Usage
sggm(data, lambda, M, prob)
Arguments
| data | An n by p dataframe representing the observations | 
| lambda | A vector of tuning parameters used to build the model pool | 
| M | The prior adjacency matrix | 
| prob | The mean error rate | 
Value
A list of objects containing:
| networkhat | The final selected adjacency matrix | 
| candidates | The model pool | 
Author(s)
Jie Zhou
Examples
   set.seed(1)
   m1 = 100
   m2 = 30
   p = 100
   n = 100
   d=simulate(n=n,p=p, m1 = m1, m2 = m2) # simulate fake data 
   lambda=exp(seq(-5,5,length=100)) # tuning parameter
   data=d$data # data from the simulation
   M=d$priornetwork # prior network from simulation
   # calculating the error rate 
   r1=m2/m1
   r2=m2/(p*(p-1)/2-m1)
   r=(r1+r2)/2
   # apply sggm 
   result=sggm(data=data, lambda=lambda, M=M, prob=r)
   # compare the final network and the true network 
   result$networkhat
   d$realnetwork
Randomly generate a adjacency matrix based on which to simulate data
Description
According to a given edge density, first generate the adjacency matrix P of a graph. Based on P, the simulated multivariate normal data is generated with mean zero and a specified given precision matrix
Usage
simulate(n, p, m1, m2)
Arguments
| n | Sample size | 
| p | The number of vertices in graph or the number of variables | 
| m1 | The number of edges in the true graph | 
| m2 | The number of elements in adjacency matrix that stay in different states, i.e., 0 or 1, in true and prior graphs | 
Value
A list including the simulated data, real adjacency matrix and a prior adjacency matrix
| data | simulated data | 
| realnetwork | real adjacency matrix | 
| priornetowrk | prior adjacency matrix | 
Author(s)
Jie Zhou
Examples
  set.seed(1)
  d=simulate(n=100,p=200, m1=100, m2=30)
  d$data
  d$realnetwork
  d$priornetwork