Sunthud Pornprasertmanit edited this page Jun 11, 2016 · 66 revisions

semTools: Useful tools for structural equation modeling

The goal of this package is to collect useful functions for structural equation modeling in a single, easily accessible place. Everyone is invited to send functions to us and we will maintain the functions for you. Click here for the list of all current functionality of this package and the near future development.


[June 10, 2016] Latest Update: semTools, Version 0.4-12

This version is available in CRAN. The lavaan package changes the elements in parameter table. Thus, some functions were edited according to the changes. Importantly, runMI did not provide correct results in the combination of lavaan 0.5-20 and semTools 0.4-11 or lower. This version fixes the problem, as well as providing the correct results with the presence of exogenous variables. The asymptotic covariance matrix is also added in the multiply-imputed result so lavWaldTest in lavaan or wald in semTools can be used to implement multivariate Wald test. Furthermore, users can run nested model comparison between two multiply-imputed results using anova. It provides the comparison results using method similar to tests of absolute fit (i.e., LMRR, MR, Mplus, and naive methods). However, the accuracy of the methods has not been investigated yet. The other functions that are fixed based on the change in parameter table are efa, longInvariance, measurementInvariance, measurementInvarainceCat, auxiliary, partialInvariance, partialInvarianceCat, and imposeStart.

Two new functions are introduced in this version. Thanks to Jason Rights and Sonya Sterba, poolMAlloc provides a method to pool results from different parcel allocations. Thanks to Ylenio Longo, htmt is used to assess discriminant validity using heterotrait-monotrait ratio. permuteMeasEq is also updated, such as adding the datafun argument to manipulate data before analyzing a model.

[February, 29, 2016] Latest Update: semTools, Version 0.4-11

This version is available in CRAN. The lavaan package changes its internal structure. This version changes some functions in order to make it compatible with lavaan version 0.5-20 or higher. Thanks to Jason Rights and Sonya Sterba, PAVranking function is added to investigate the influence of parcel allocation for model comparison. permuteMeasEq function is also updated by adding an option using modification indices


Everyone is invited to be a developer! Here is the list of current developers.


Sunthud Pornprasertmanit

Patrick Miller

Alexander Schoemann


The project is still under development. The package can be installed by copying this line into the R program:


If you are interested in the source code, please click the code tab. You may install the recently developed test version by downloading the latest version from the following link into the current R directory:


Make sure that you have the lavaan package in your personal library and then copy the following line into R:

install.packages("semTools_latestVersion.tar.gz", repos = NULL, type = "source")

Note that latestVersion is the appropriate number of the latest version. For example, "semTools_0.4-12.tar.gz" is used.

Please report any bugs or give me any suggestions by email.


We think that the development of the package is a collaborative work. The maintainers cannot take the credits of others' contributions. If it is possible to cite a paper working on the development of the function, please cite it. Otherwise, please use the following citation:

semTools Contributors. (2016). semTools: Useful tools for structural equation modeling. R package version 0.4-12. Retrived from http://cran.r-project.org/web/packages/semTools/index.html


Version History


The development of semTools has been supported by the University of Kansas Center for Research Methods and Data Analysis.