(8 June 2022): the short courses for IMPS 2022 (Bologna, 11 July) include three lavaan-related courses: Introductory course on lavaan, Understanding SEM: Where do all the numbers come from?, and SimSEM-in-R: Simulating Structural Equation Models Using lavaan and simsem.
(1 April 2022): Introduction to Structural Equation Modeling using lavaan (online only); In this e-learning course, we will go over the basics of structural equation modeling using lavaan. The course will run for two weeks and delivers five full days of content. 04 July – 15 July 2022. (course code: S65)
(8 March 2022): the paper ‘Using bounded estimation to avoid nonconvergence in small sample structural equation modeling’ is now available online here. The preprint can be found on the OSF repository.
(11 Oct 2021): the open-access paper ‘Computational Options for Standard Errors and Test Statistics with Incomplete Normal and Nonnormal Data in SEM’ (by Savalei and Rosseel) is now available online. The preprint (in LaTeX) can be found on PsyArXiv.
(16 June 2021): a preprint of the paper: ‘The Structural-After-Measurement (SAM) approach to SEM’ (forthcoming in Psychological Methods) is now available on the OSF repository.
(7 June 2021): new (technical) paper describing the multilevel + fiml approach as used in lavaan 0.6-9 is published in Psych.
The lavaan package is developed to provide useRs, researchers and teachers a free open-source, but commercial-quality package for latent variable modeling. You can use lavaan to estimate a large variety of multivariate statistical models, including path analysis, confirmatory factor analysis, structural equation modeling and growth curve models.
The official reference to the lavaan package is the following paper:
Yves Rosseel (2012). lavaan: An R Package for Structural Equation Modeling. Journal of Statistical Software, 48(2), 1-36. URL http://www.jstatsoft.org/v48/i02/
To get a first impression of how lavaan works in practice, consider the following example of a SEM model. The figure below contains a graphical representation of the model that we want to fit.
myModel <- ' # latent variables ind60 =~ x1 + x2 + x3 dem60 =~ y1 + y2 + y3 + y4 dem65 =~ y5 + y6 + y7 + y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual covariances y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' fit <- sem(model = myModel, data = PoliticalDemocracy) summary(fit)