clear set more off // set up some simple data set seed 2012 set obs 4 gen x=invnorm(runiform()) gen y=invnorm(runiform()) replace x=. in 1 replace y=. in 2 mi set wide mi register imputed x y mi impute chained (regress) x y, add(2) browse // _mi_miss stores whether a given observation has any missing values or not // In wide form, each imputation is a set of variables // Format is _Imputation Number_Variable sleep 5000 mi convert mlong, clear browse // In mlong (marginal long) form, observations with imputed values are duplicated // Note _mi_miss is missing in imputed observations // _mi_m is the imputation number (0 is unimputed data) // _mi_id is an id number that identifies each observation sleep 5000 mi convert flong, clear browse // In flong (full long) form, all observations are duplicated // It uses more memory than mlong // This is the form used by ice--if you import from ice convert to something else // Only useful for complex data manipulations not handled by mi sleep 5000 mi convert flongsep styles, clear replace browse // Now each imputation is a separate file--much slower to work with // Only the unimputed data is in memory // Use this only if you can't put all the imputations in your computer's memory