help for micombine                                              Patrick Royston

Estimation of regression models with multiply imputed samples

micombine {supported_regression_cmd | other_regression_cmd} [yvar] [covarlist] [other_stuff] [if exp] [in range] [weight] [ , br noconstant detail eform|{eform(string)} genxb(newvarname) impid(varname) infgain lrr nowarning obsid(varname) svy[(svy_options)] regression_cmd_options ]


supported_regression_cmds are clogit, cnreg, glm, logistic, logit, mlogit, ologit, oprobit, poisson, probit, qreg, regress, rreg, stcox, streg, or xtgee, and other_regression_cmd is any other Stata regression command (see Remarks).

micombine shares a subset of the features of all estimation commands (see help estimates); see Remarks.

All weight types supported by regression_cmd are allowed; see help weights.


micombine estimates the parameters of a regression model whose type is determined by supported_regression_cmd or other_regression_cmd. Parameter estimates are combined across several replicates obtained previously by multiple imputation, e.g. by using ice to create a file of imputed data. See Remarks for a brief account of how micombine combines the estimates and obtains standard errors.


br calculates degrees of freedom and tests of significance for each predictor according to the formulae (3)-(5) of Barnard & Rubin (1999). After estimation, the required degrees of freedom are stored in a matrix (column vector) e(nutilde). Note that if test is used after micombine for significance testing of regression coefficients, such tests assume that the degrees of freedom are equal to the number of observations minus the number of parameters estimated, not those given in e(nutilde).

detail gives details of the regression model for each imputation.

eform(string) indicates that the exponentiated form of the coefficients is to be output and reporting of the constant is to be suppressed; string is used to label the exponentiated coefficients.

eform indicates that the exponentiated form of the coefficients is to be output and reporting of the constant is to be suppressed; the exponentiated coefficients are labelled exp(b).

genxb(newvarname) creates newvarname to hold the linear predictor from each regression model, averaged over all the imputations.

impid(varname) specifies that varname is the variable identifying the imputations. The number of imputations is determined as the number of unique values of varname. All observations for which varname takes the value zero are ignored in the analysis. Default varname: _mj.

infgain reports the percentage increase in information and sample size due to the use of multiple imputation. The information gain is the percent increase in Wald chisquare for the entire model, comparing the Wald chisquare for the model on the original data (complete case analysis) with that using the variance-covariance matrix of the parameters estimated using Rubin's rules. With a bad imputation model the information increase could be negative.

lrr specifies that the Li-Raghunathan-Rubin (LRR) robust estimate of the variance-covariance matrix of the regression coefficients be used.

noconstant suppresses the regression constant in all regressions.

nowarning suppresses the warning message about the use of other_regression_cmds (see Remarks).

obsid(varname) is provided to allow micombine to analyse datasets created by programs other than ice. varname specifies the name of a variable holding the "observation ID", i.e. the sequence number of each observation in a given imputation. The number of observations should be identical between imputations, as should the order of the observations. varname should run 1,...,N for imputation 1, 1,...,N for imputation 2, and so on. ice automatically stores the information with the data, so this option is not required. Default varname: _mi.

[Stata 9] svy[(svy_options)] performs survey regression. The prefix svy: is placed before regression_cmd. If svy_options is supplied then , svy_options is placed after svy and before the colon. The data must be svyset before this option is used. This must be done before ice is used to impute missing values. That the data have been svyset is inherited by the file of imputations created by ice.

[Stata 8] svy performs survey regression. The prefix svy is placed before regression_cmd, so that for example micombine regress ..., svy is interpreted as micombine svyregress .... Options for survey regression are included as options to micombine. The data must be svyset before the svy option is used. This must be done before ice is used to impute missing values. That the data have been svyset is inherited by the file of imputations created by ice.

regression_cmd_options may be any of the options appropriate to regression_cmd.


Details of statistical inference from multiple imputed datasets are nicely described in a recent Stata Journal article by John Carlin and colleagues (Carlin et al, 2003). Here, with due acknowledgment to John, I give an edited version of Section 2 of his article.

A simple method of combining estimates from several models was derived by Rubin (1987). Suppose initially that primary interest lies in estimating a scalar quantity, Q. Here, Q is a regression coefficient, for example, the log hazard ratio in a proportional hazards model. Suppose that we have imputed m complete datasets using an appropriate model. In each dataset, standard complete-data methods are used to obtain an estimate of Q with an associated standard error. Let Q_j and V_j denote the point estimate and variance respectively from the jth (j = 1, 2, ... , m) dataset. The point estimate Q^ of Q from multiple imputation is simply the arithmetic mean of Q_1,...,Q_m.

Obtaining a valid standard error for this estimate of Q^ requires combining information on within-imputation and between-imputation variation. The latter is important in reflecting uncertainty due to variability between imputation samples. First, a within-imputation variance component, W, is obtained as the mean over the m imputations of the complete-data variance-covariance matrices, V_1,....,V_m. Second, a between-imputation variance component, B, is calculated as the sum of squares of Q_1,....,Q_m about Q^, divided by m-1. In summary,

Q^ = (Q_1 + ... + Q_m)/m

W = (V_1 + ... + V_m)/m

B = ((Q_1 - Q^)^2 + ... + (Q_m - Q^)^2)/(m - 1)

The (total) variance T of Q^ is given by

T = W + B * (1 + 1/m)

Rubin (1987) showed that (Q - Q^)/sqrt(T) is distributed approximately as Student's t on nu degrees of freedom, where

nu = (m - 1) * (1 + W /(B * (1 + 1/m)))^2

The (1 + 1/m) term in these expressions indicates that it is not necessary to a create large number of imputed datasets, particularly when B is much smaller than W. The condition will be satisfied unless there is much missing data and the parameter estimates within each dataset are very precise.

Available regression commands

micombine has been tested with the commands listed under supported_regression_cmd at the beginning of this help file. micombine may work satisfactorily with other_regression_cmds, but this cannot be guaranteed. This facility is provided so that the researcher familiar with a particular Stata command has a fighting chance of obtaining correct MI estimates and standard errors. HOWEVER, THE AUTHOR DISCLAIMS RESPONSIBILITY FOR THE CORRECTNESS OF RESULTS ARISING FROM USE OF AN other_regression_cmd. Note that other_stuff in the syntax diagram is code that may be required by some other_regression_cmds, for example ivreg wants (varlist2 = varlist_iv). micombine parses for the occurrence of an opening parenthesis. There may be other syntaxes that are not accommodated by this approach; if so, please contact the author with details.

Post-estimation prediction

The predict command may work as you expect after micombine, but this feature should be treated with caution. micombine stores the quantities needed by predict at the last execution of the regression command, that is at the final imputation, but prediction following some regression commands has non-standard features that are hard to emulate accurately. Known issues are as follows:

1. After micombine mlogit: predict may require that the outcome levels are known as 0, 1, 2, ... , so it may be necessary to drop the score label for the outcome variable, if such a label is defined. This is KNOWN to be a problem using mfx following micombine mlogit. For example, mfx compute, predict(outcome(0)) will work only if the lowest level of the outcome is 0, and is not labelled.

Sample size

The sample size reported by micombine is the number of observations found when fitting the model in the first imputation (i.e. by default: for _mj==1). It may happen that the sample size varies between imputations, for example, when the effect of an if or in filter differs between imputations, or when a weighting scheme effectively removes different observations in different imputations. The resulting parameter estimates and their SEs are believed still to be approximately valid in this situation. The program alerts you to the occurrence of variable sample size, but no action need be taken by you. Post-estimation commands test and testparm use the sample size found when the model is fitted in the final imputed dataset.


. ice y x1 x2 x3 using imp, m(10) genmiss(m_) . use imp, clear . micombine regress y x1 x2 x3 . stset time, failure(cens) . micombine stcox x1 x2 x3, genxb(index) . test x2==1 . testparm x1 x2 . micombine regress y x1 x2 x3, svy(subpop(if sex==1))


Patrick Royston, MRC Clinical Trials Unit, London. pr@ctu.mrc.ac.uk


Barnard, J. and D. B. Rubin. 1999. Small-sample degrees of freedom with multiple imputation. Biometrika 86: 948-955.

Carlin, J. B., N. Li, P. Greenwood, and C. Coffey. 2003. Tools for analyzing multiple imputed datasets. Stata Journal 3(3): 226-244.

Carlin, J. B., N. Li, P. Greenwood, and C. Coffey. 2003. Tools for analyzing multiple imputed datasets. Stata Journal 3(3): 226-244.

Li, K., T. Raghunathan, and D. Rubin. 1991. Large sample significance levels from multiply-imputed data using moment-based statistics and an F reference distribution. Journal of the American Statistical Association 86: 1065-1073.

Royston P. 2004. Multiple imputation of missing values. Stata Journal 4(3):227-241.

Royston P. 2005. Multiple imputation of missing values: update. Stata Journal 5(2):188-201.

Royston P. 2006. Multiple imputation of missing values: update of ice. Stata Journal in preparation.

Rubin, D. 1987. Multiple Imputation for Nonresponse in Surveys. New York: John Wiley & Sons.

Schafer, J. 1997. Analysis of Incomplete Multivariate Data. London: Chapman & Hall.

van Buuren, S., H. C. Boshuizen and D. L. Knook. 1999. Multiple imputation of missing blood pressure covariates in survival analysis. Statistics in Medicine 18:681-694. (Also see http://www.multiple-imputation.com.)

Also see