MBC Procedure

PROC MBC Statement

  • PROC MBC <options>;

The PROC MBC statement invokes the procedure. Table 1 summarizes the available options in the PROC MBC statement by function. They are then described fully in alphabetical order.

Table 1: PROC MBC Statement Options

Option Description
Basic Options
DATA= Specifies the input data table
Options Related to Model Fitting
CONVTEST= Specifies the convergence test to use for model fitting
COVSTRUCT= Specifies the covariance structure
CRITERION= Specifies the fit statistic to use for model selection
EMCRITERION= Tunes the expectation-maximization (EM) convergence criterion
FACTORDETAILS Includes factor loadings and unique error variances in the ParameterEstimates table
INIT= Specifies the initialization method
ITHIST= Displays the iteration history
MAXITER= Specifies the maximum number of EM iterations
NCLUSTERS= Specifies the number of Gaussian components
NFACTORS= Specifies the number of latent factors
NOISE= Specifies the presence of noise
SEED= Specifies the pseudorandom number seed
SINGPARM= Tunes the parameter singularity criterion
SINGULAR= Tunes the singularity criterion
TECHNIQUE= Specifies the EM technique
TOPMODELS= Specifies the number of models to display in summary


The following options are available in the PROC MBC statement:

CONVTEST=AITKEN | LOGL

specifies the convergence test to use. You can specify the following values:

AITKEN

uses Aitken’s acceleration (McLachlan and Krishnan 1997) with the stopping criterion described in Böhning et al. (1994) for computing the test value in the following steps:

  1. a Superscript left-parenthesis k right-parenthesis Baseline equals StartFraction script l Superscript left-parenthesis k plus 1 right-parenthesis Baseline minus script l Superscript left-parenthesis k right-parenthesis Baseline Over script l Superscript left-parenthesis k right-parenthesis Baseline minus script l Superscript left-parenthesis k minus 1 right-parenthesis Baseline EndFraction, where script l Superscript left-parenthesis k right-parenthesis is the log-likelihood value at the kth iteration.

  2. script l Subscript normal infinity Superscript left-parenthesis k plus 1 right-parenthesis Baseline equals script l Superscript left-parenthesis k right-parenthesis Baseline plus StartFraction 1 Over 1 minus a Superscript left-parenthesis k right-parenthesis Baseline EndFraction left-parenthesis script l Superscript left-parenthesis k plus 1 right-parenthesis Baseline minus script l Superscript left-parenthesis k right-parenthesis Baseline right-parenthesis

  3. Compute StartAbsoluteValue script l Subscript normal infinity Superscript left-parenthesis k plus 1 right-parenthesis Baseline minus script l Subscript normal infinity Superscript left-parenthesis k right-parenthesis Baseline EndAbsoluteValue and compare this value to the convergence criterion value.

LOGL

uses the relative log-likelihood change test: StartAbsoluteValue script l Superscript left-parenthesis k plus 1 right-parenthesis Baseline minus script l Superscript left-parenthesis k right-parenthesis Baseline EndAbsoluteValue slash StartAbsoluteValue script l Superscript left-parenthesis k right-parenthesis Baseline EndAbsoluteValue, where script l Superscript left-parenthesis k right-parenthesis is the model log likelihood after the kth iteration.

By default, CONVTEST=LOGL. If the convergence test value is less than or equal to the value specified in the EMCRITERION= option, the process is considered to have converged.

COVSTRUCT=name | (name <namename>) | ALLGMIX | ALLPGMIX | ALL

specifies the covariance structure for the Gaussian components. The value of name can be one of the covariance structures for Gaussian mixture modeling or parsimonious Gaussian mixture modeling.

Nine covariance structures are available for fitting Gaussian mixture models (GMMs): COVSTRUCT=EEE | EEI | EEV | EII | EVI | EVV | VII | VVI | VVV.

Eight covariance structures are available for fitting parsimonious Gaussian mixture models (PGMMs): COVSTRUCT=CCC | CCU | CUC | CUU | UCC | UCU | UUC | UUU.

By default, COVSTRUCT=VVV.

The GMM structures impose one or more constraints on the covariance matrices in the separate Gaussian components, whereas the PGMM structures constrain the factor loading matrices and the unique error variance matrices. For a complete discussion of the different covariance structures, see the section Covariance Structures.

If you specify a list of covariance structures, PROC MBC fits a separate model for each value in the list and for each value of the NCLUSTERS= and NOISE= options. For any covariance structure that belongs to the set of PGMM covariance structures, the procedure also fits a separate model for each value of the NFACTORS= option.

If you specify the ALLGMIX value, the procedure fits models by using each Gaussian mixture covariance structure. If you specify the ALLPGMIX value, the procedure fits models by using each parsimonious Gaussian mixture covariance structure. Specifying the ALL value is equivalent to specifying both ALLGMIX and ALLPGMIX.

If you specify one of the parsimonious Gaussian mixture covariance structures, the ALLPGMIX value, or the ALL value, you can also specify the number of latent factors by using the NFACTORS= option. The procedure identifies the model that has the best fit, where the fit is computed according to the value of the CRITERION= option.

CRITERION=AIC | AICC | BIC | LOGL

specifies the model fit criterion to use in model selection. You can specify the following values:

AIC

specifies Akaike’s information criterion.

AICC

specifies Akaike’s information criterion (corrected).

BIC

specifies the Bayesian information criterion.

LOGL

specifies the log likelihood.

By default, CRITERION=BIC. Each criterion is defined so that a model with a smaller value for the criterion is judged to have a better fit than a model with a larger value for the same criterion.

DATA=libref.data-table

names the input data table for PROC MBC to use. The default is the most recently created data table. libref.data-table is a two-level name, where

libref

refers to a collection of information that is defined in the LIBNAME statement and includes the library, which includes a path to the data, and a session identifier, which defaults to the active session but which can be explicitly defined in the LIBNAME statement. For more information about libref, see the section Using CAS Sessions and CAS Engine Librefs.

data-table

specifies the name of the input data table.

EMCRITERION=number

specifies the convergence criterion for the expectation-maximization (EM) technique. The EM process terminates when the value of the test that you specify in the CONVTEST= option is less than or equal to number. The value of number must be greater than or equal to 0. The default value depends on the value of the CONVTEST= option. If you specify CONVTEST=LOGL or do not specify a value for CONVTEST, then by default EMCRITERION=1E–5. If you specify CONVTEST=AITKEN, then by default EMCRITERION=1E–3.

FACTORDETAILS

includes the factor loadings and the unique error variances in the "Parameter Estimates" table. These estimates provide a fuller picture of the model. In general, the estimated factor loadings are subject to rotational indeterminacy, and thus they are not indicative of the associations between the factors and the observed variables. This option has no effect on models that do not use one of the parsimonious Gaussian mixture model covariance structures. For a complete description of the different types of covariance structures, see the COVSTRUCT= option.

INIT=KMEANS | RANDOM

specifies which method to use to initialize cluster membership. This option is ignored if you specify initial weights in the INIT statement. You can specify one of the following values:

KMEANS

uses k-means clustering to generate starting values. BY-group processing is not available when you specify this method.

RANDOM

specifies the random weight method.

By default, INIT=RANDOM.

If you use the INIT statement to specify initialization variables, the procedure uses those variables for initialization and ignores any INIT= option.

ITHIST <=DETAILS | NONE | SUMMARY>

produces the "Iteration History" table. You can specify one of the following levels:

DETAILS

produces a table that contains expanded information about each iteration.

NONE

suppresses the production of the table.

SUMMARY

produces a table that contains basic information about each iteration.

If you specify the ITHIST option but do not specify one of the levels, the procedure uses the SUMMARY level.

MAXITER=number

specifies the maximum number of expectation-maximization (EM) iterations before termination. The EM process terminates after the specified number of iterations, even if the process has not converged. By default, MAXITER=500.

NCLUSTERS=number | (number <numbernumber>) | (number to number <by number>)

specifies the number of Gaussian components in the model. If you specify a list of numbers or a range of numbers, PROC MBC fits a separate model for each value in the list or range and for all values of the NOISE= and COVSTRUCT= options. For any covariance structure that belongs to the set of PGMM covariance structures, the procedure also fits a separate model for each value of the NFACTORS= option. The procedure identifies the model that has the best fit, where the fit is computed according to the value of the CRITERION= option. By default, NCLUSTERS=2.

If you use the (smallest to largest by increment) syntax, the list contains the values (smallest, smallest+increment, smallest+2*increment, ellipsis, smallest+p*increment), where each value in the list is less than or equal to largest. If the resulting list contains any noninteger values or values less than 1, the procedure terminates with a syntax error.

NFACTORS=number | (number <numbernumber>) | (number to number <by number>)

specifies the number of latent factors to use with PGMM covariance structures. All specified values must be less than or equal to the number of variables that you specify in the VAR statement. If you specify a list of numbers or a range of numbers, PROC MBC fits a separate model for each value in the list or range, for all values of the NOISE= option, for all values of the NCLUSTERS= option, and for values of the COVSTRUCT= option that belong to the set of PGMM covariance structures. The procedure identifies the model that has the best fit, where the fit is computed according to the value of the CRITERION= option. By default, NFACTORS=1.

If you use the (smallest to largest by increment) syntax, the list contains the values (smallest, smallest+increment, smallest+2*increment, ellipsis, smallest+p*increment), where each value in the list is less than or equal to largest. If the resulting list contains any noninteger values or values less than 1, the procedure terminates with a syntax error.

NOISE=YES | NO | (value <valuevalue>)

specifies whether to include a noise component. If you specify a list of values, PROC MBC fits a separate model for each distinct value in the list and for all values of the COVSTRUCT= and NCLUSTERS= options. For any covariance structure that belongs to the set of PGMM covariance structures, the procedure also fits a separate model for each value of the NFACTORS= option. The procedure identifies the model that has the best fit, where the fit is computed according to the value of the CRITERION= option. By default, NOISE=NO.

SEED=integer

specifies the pseudorandom number seed for generating random starting weights. Random starting weights are used only when you do not specify starting weight variables in the INIT statement and when you do not specify INIT=RANDOM. If you do not specify a seed, then the seed is derived from the default random number generator on the controller.

SINGPARM=number

specifies the parameter singularity criterion. If the mixing estimate for a model component is less than or equal to number, it is considered to be zero. In models that have noise components, if the computed noise volume is less than or equal to number, the procedure will not fit the model. The value of number must be greater than zero. By default, SINGPARM=1E–8.

SINGULAR=number

specifies the general singularity criterion to use in matrix operations. The value of number must be greater than or equal to zero. By default, SINGULAR=1E–8.

TECHNIQUE=EM | CEM

specifies the expectation-maximization (EM) technique to use. You can specify the following values:

EM

specifies the traditional EM technique.

CEM

specifies the classification EM technique.

By default, TECHNIQUE=EM.

TOPMODELS=number

specifies the maximum number of models to include in the FitSummary table. The value of number must be an integer greater than or equal to 1. This option is applicable only when at least one of the NCLUSTERS=, NOISE=, or COVSTRUCT= options has multiple values. The FitSummary table displays summary information for number of models or for as many models as were fit, whichever is smaller. By default, TOPMODELS=10.

Last updated: June 22, 2026