The MCMC Procedure

Initial Values of the Markov Chains

There are three types of parameters in a PROC MCMC program: the model parameters in the PARMS statement, the random-effects parameters in the RANDOM statement, and the missing data variables in the MODEL statement. The last category is used to model missing values in the input data set.

When the model parameters and random-effects parameters have missing initial values, PROC MCMC generates initial values based on the prior distributions. PROC MCMC either uses the mode value (the default) or draws a random number (if the INIT=RANDOM option is specified). For distributions that do not have modes, such as the uniform distribution, PROC MCMC uses the mean instead. In general, PROC MCMC avoids using starting values that are close to the boundary of support of the prior distribution. For example, the exponential prior has a mode at 0, and PROC MCMC starts an initial value at the mean. This avoids some potential numerical problems. If you use the GENERAL or DGENERAL function in the PRIOR statements, you must provide initial values for those parameters.

With missing data variables, PROC MCMC uses the sample average of the nonmissing values (of the response variable) as the initial value. If all values of a particular variable are missing, PROC MCMC resorts to using the mode value or a random number from the sampling distribution (the likelihood), depending on the specification of the INIT= option.

To assign a different set of initial values to the model parameters, you use either the PARMS statements or programming statements within the BEGINCNST and ENDCNST statements. See the section Assignments of Parameters for more information about how to assign parameter values within the BEGINCNST and ENDCNST statements.

To assign initial values to the random-effects parameters, you can use the INIT= option in the RANDOM statement. Either you can give a constant value to all random-effects parameters that are associated with that statement (for example, use init=3), or you can assign values individually by providing a data set that stores different values for different parameters.

A mirroring INIT= option in the MODEL statement enables you to assign different initial values to the missing data variables.

If you use the PROPCOV= optimization option in the PROC MCMC statement, PROC MCMC starts the tuning at the optimized values. PROC MCMC overwrites the initial values that you might have provided at the beginning of the Markov chain unless you use the option INIT=REINIT.