SEM/CFA: AMOS or lavaan?

by Arndt Regorz, MSc.
May 19, 2024

If you want to run a structural equation model (SEM), a confirmatory factor analysis (CFA) or a path analysis you have the choice between many different programs. For university students it often comes down to this choice: Using IBM AMOS, provided by the university, or using the free R package lavaan.

Here I will compare those two programs on a number of different criteria in order to facilitate your decision for one or the other program.

This comparison is highly subjective, of course. I have used both programs many times and these are my personal experiences. And when I say “program X can’t …”, then it is simply my impression at the time of writing that this functionality is not available for program X.

9 Key Differences between AMOS and lavaan

1. The User Interface

AMOS has a graphical user interface where you can draw your model with drag-and-drop functionality. In addition to that, you can choose to input your model using syntax code. For most key modeling options you can choose between clicking on buttons or using conventional menus.

Lavaan is a part of R and script based. You write R code using the R editor of your choice (e.g., RStudio). For the modeling options you need to remember or look up the relevant R/lavaan commands.

Winner: AMOS

2. Output

In AMOS you get a very large output per default. To my taste, some parts of the output are not very intuitive (bootstrap results if requested, standardized results in separate tables).

In lavaan you get a limited output by default and have to explicitly request additional output elements.

Winner: Draw

3. Prior Knowledge of Software

AMOS as a stand alone software does not require any prior knowledge of statistics software. Even though it is connected to SPSS you don’t need to have any prior experience with SPSS.

Lavaan is part of R, you can’t use lavaan without knowing a little bit about R (e.g., data import, handling data frames). However, most of lavaan’s functionality is pretty self-contained so you don’t need a very deep knowledge of R to use lavaan. And you could use another statistics program (e.g. SPSS) for data preparation and import the resulting data file into R for analyzing with lavaan if you don’t have prior R knowledge.

Winner: AMOS

4. Integration

Even though AMOS is marketed as the SEM-program for SPSS it is basically a separate program with a totally different user interface. If you use SPSS for data preparation you save your data file and then import it into AMOS.

Lavaan on the other hand is just an ordinary R package and thus fully integrated into the R workflow. You can easily combine data preparation and your SEM/CFA-analysis into one R script.

Winner: Lavaan

5. Robust Estimation

For robust estimation AMOS primarily gives the option of using bootstrapping. Common robust estimators (Satorra-Bentler, Huber-White sandwich estimator) seem to be missing.

Lavaan has a full range of robust estimation options, robust estimators (e.g., Satorra-Bentler, Huber-White) as well as bootstrapping.

Winner: Lavaan

6. Missing Data Handling

In the case of missing data AMOS has the option to use full information maximum likelihood estimation to include incomplete cases in your analysis. But this can’t be combined with bootstrapping so you don’t have a good solution for incomplete cases and a violated normality assumption.

Full information maximum likelihood estimation is available in lavaan, too. Here it can be combined with different robust estimation methods (Huber-White sandwich estimator, bootstrapping).

Winner: Lavaan

7. Disturbances / Error Terms

In AMOS you have to add all necessary error terms and name them. There is a plug-in that helps you with naming but the resulting names are not as intuitive. While taking more time this has the benefit of making it quite clear in the output when you get results for a variable and when you get results for its error term or disturbance.

In lavaan you don’t have to model error terms explicitly. This takes less time but it is easier to mistake an error term for the corresponding variable since in the output error terms are marked with a small dot in front of the variable name only.

Winner: Draw

8. Multilevel Modeling

If you have hierarchical data you can’t use multilevel modeling with AMOS.

Lavaan on the other hand provides limited multilevel options for SEM, CFA and path analysis, allowing you to build models with two levels and a random intercept (for more complex hierarchical structures you would have to change to MPlus).

Winner: Lavaan

9. Cost

AMOS is a commercial software package and it is not cheap.

Lavaan is part of the open source R environment and you don’t have to pay anything to use it.

Winner: Lavaan.


AMOS and lavaan both have advantages and disadvantages. Here are my key recommendations:

If you don’t have any experience with R then AMOS will probably be the easier choice, especially for simpler models and well-behaved data.

If your university doesn’t provide you with AMOS then lavaan will be much cheaper to use.

And for more complex cases and violated assumptions lavaan will give you much more flexibility.


Regorz, A. (2024, May 19). SEM/CFA: AMOS or lavaan?. Regorz Statistik.