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
```

Stata### 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
...
```

StataIf 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)
```

Stata### 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
```

Stata### 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) ;
```