Stata has features for analyzing Structural Equation Models (e.g., sem, gsem, or sembuilder), but some advanced analyses are only available in Mplus. If you prefer data cleaning and descriptive analysis in Stata and SEM analysis in Mplus, you might want to convert your Stata data
dta files to Mplus data
dat files. For this purpose, UCLA IDRE has developed a package called
stata2mplus. Here is a quick how-to guide.
Step 1. Install the package
net install stata2mplus, from(https://stats.oarc.ucla.edu/stat/stata/ado/analysis) // stata2mplus is not on ssc install, so you need to search using net install * alternatively, you can search and then install on the pop-up screen search stata2mplus
Step 2. Data preparation
One thing to keep in mind when preparing Mplus data is that variable names should not be longer than 8 characters. So you would need to keep your variable names short. The first step is to use rename to shorten the variable names.
// Rename variable rename variable1 var1 rename variable2 var2 rename education1 edu1 ...
If you’re going to do item parceling, I recommend going through factor analysis and item parceling in this step. Here is an example. For more information on item parceling, you can refer to the method articles like this: Item Parceling in Structural Equation Modeling: A Primer
factor variable1 variable2 variable3 variable4 variable5 variable6 variable7 variable8 variable9 variable10, ml factor(1) // After running factor analysis, assign the items to parcel // according the the order of factor loading. gen parcel1 = (variable3+variable5+variable6) gen parcel2 = (variable1+variable7+variable8) gen parcel3 = (variable2+variable4+variable9+variable10)
Step 3. Export Data in Stata
The last step is to extract the data into a Mplus
dat file, where I keep only the variables I want to use in the SEM model (
keep if) and then I sort the order of the variables again (
order). The reason for doing this is to avoid errors in ordering the variables in Mplus, as this can lead to errors. In Stata, the variables are not stored in the order you leave them in the
keep if, so you need to make sure they are stored in exactly that order with
order command. The final step is to export the data via
stata2mplus. By default, missing is set to
-9999, but you can change this number to whatever you like.
keep if parcel1 parcel2 parcel3 edu1 edu2 gender order parcel1 parcel2 parcel3 edu1 edu2 gender stata2mplus using "name_for_mplus_file", missing(-9999) replace
Step 4. Import Data in Mplus
To import this into Mplus, follow the steps below. You need to ensure that 1) the order is the same and 2) the missing values’ numbers are the same as you extracted in Stata.
Data: File is name_for_mplus_file.dat ; Variable: Names are parcel1 parcel2 parcel3 edu1 edu2 gender; USEVARIABLES ARE parcel1 parcel2 parcel3 edu1 edu2 gender; Missing are all (-9999) ;