Learn R Programming

sBIC Package

Purpose

This package allows you to compute the singilar Bayesian information criterion as described in Drton and Plummer (2017) for collections of the following model types:

  1. Binomial mixtures
  2. Gaussian mixtures
  3. Latent class analysis
  4. Gaussian latent forests
  5. Reduced rank regression
  6. Factor analysis

All of these models, excluding Gaussian latent forests, are described in the above paper. For details regardings the use of the sBIC with Gaussian latent forests see Drton et al (2014).

Object oriented approach

This package makes extensive use of the R.oo package (Bengtsson 2003) which allows for the use of some object oriented principles in R. While not strictly necessary to use this package it may be helpful to read sections 1 and 2 of Bengstsson (2003) which serve as an introduction to R.oo.

An important consequence of the use of R.oo is that objects in the sBIC package use call by reference semantics and are modified by calling their associated methods.

Example

Each collection of models is defined as its own class. As an example for how to use the package we will compute the sBIC for a collection of Gaussian mixture models with at most 8 components:

set.seed(123)

Create an object representing a collection of Gaussian mixture models with at most 8 components in 2 dimensions.

library(sBIC)
gms = GaussianMixtures(maxNumComponents = 8, dim = 2, restarts = 100)

Generate some simulated data, a mixture of 3 bivariate normals.

library(MASS)
n = 175
class = sample(0:2, n, replace = TRUE)
X = (class == 0) * mvrnorm(n, mu = c(0, 0), Sigma = diag(2)) +
    (class == 1) * mvrnorm(n, mu = c(2.5, 2.5), Sigma = diag(1.3, 2)) +
    (class == 2) * mvrnorm(n, mu = c(-3, 2.5), Sigma = diag(1.2, 2))

Compute the sBIC on the mixture models with the randomly generated data.

sBIC(X, gms)

Notice that the BIC too strongly penalizes the (true) model with 3 components.

References

  • Bengtsson, H. (2003)The R.oo package - Object-Oriented Programming with References Using Standard R Code, Proceedings of the 3rd International Workshop on Distributed Statistical Computing (DSC 2003), ISSN 1609-395X, Hornik, K.; Leisch, F. & Zeileis, A. (eds.) URL https://www.r-project.org/conferences/DSC-2003/Proceedings/Bengtsson.pdf
  • Drton M, Lin S, Weihs L and Zwiernik P. (2014) Marginal likelihood and model selection for Gaussian latent tree and forest models. arXiv preprint arXiv:1412.8285.
  • Drton M. and Plummer M. (2017), A Bayesian information criterion for singular models. J. R. Statist. Soc. B; 79: 1-38. Also available as arXiv preprint arXiv:1309.0911

Copy Link

Version

Install

install.packages('sBIC')

Monthly Downloads

165

Version

0.2.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Luca Weihs

Last Published

October 1st, 2016

Functions in sBIC (0.2.0)

FactorAnalyses

Construct a poset of factor analysis models.
getDimension

Model dimension.
getData

Return the set data.
GaussianMixtures

Construct a poset of gaussian mixture models.
BinomialMixtures

Construct a poset of binomial mixture models.
emMain

EM-algorithm for latent forests.
generateAllBinaryTrees

Generate all non-isomorphic binary trees.
emSteps

One EM-iteration.
getAllEdges

Edges representing the largest model.
getCovMat

Create a covariance matrix.
getModelWithSupport

Get model with the given support.
getNumSamples

Number of samples in the set data.
getNumFactorsForModel

Number of factors for a model.
getNumLeaves

Get number of leaves.
getPhi

Get the phi parameter.
getPrior

The prior on the models.
getNumModels

Number of models.
getSamplingCovMat

Sampling covariance matrix.
getSupport

Get support for a given model.
getNumVertices

Maximum number of vertices.
learnCoef

Learning coefficient
logLikeMleHelper

Help compute the MLE.
parents

Parents of a model.
mle

Maximum likelihood estimator.
logLikeMle

Maximum likelihood for data.
LCAs

Construct a poset of latent class analysis models.
getTopOrder

Topological ordering of models.
MixtureModels

Linear collections of mixture models.
LatentForests

Construct a poset of gaussian latent forest models.
logLike

Multivariate gaussian log-likelihood.
setData.GaussianMixtures

Set data for the gaussian mixture models.
setData.BinomialMixtures

Set data for the binomial mixture models.
sBIC

Compute the sBIC.
ReducedRankRegressions

Construct a poset of reduced rank regression models.
setData.LatentForests

Set data for the latent forest models.
setData

Set data for a model poset.
setData.FactorAnalyses

Set data for the factor analysis models.
setData.LCAs

Set data for the LCA models.
sBIC-package

sBIC package documentation.
setData.ReducedRankRegressions

Set data for the reduced rank regression models.
setPhi

Set phi parameter.