About lavaan


  • (pinned): Exciting things are being planned for lavaan’s future development! Click here to read more, or use the donate button below to donate to our efforts:
  • (7 June 2024): lavaan version 0.6-18 has been released on CRAN. See Version History for more information.
  • (25 March 2024): slides for my presentation (‘The SAM approach to SEM’) at the joint quantitative brownbag (JQBB) speaker series can be found here; the corresponding R can found here.

What is lavaan?

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/

First impression

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. lavaan example

This is the corresponding lavaan model syntax:

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)