About lavaan

News:

  • (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:
  • (12 December 2024): here are the slides of my presentation “The structural after measurement (SAM) approach to SEM”, to be presented during the CFE-CMStatistics connference at King’s College London.
  • (17 November 2024): here are the slides of my presentation “The structural after measurement (SAM) approach to SEM”, to be presented during the 2024 VOC jubilee conference in Leusden.
  • (6 November 2024): check out lavaangui, a graphical user interface for lavaan, allowing models to be specified by drawing path diagrams and visualizing lavaan models through interactive path diagrams. Developed by Julian D. Karch (Leiden University, The Netherlands).
  • (6 November 2024): the next Psychoco 2025 workshop will be February 6-7, 2025, Ghent University, Belgium. The submission deadline is December 15, 2024; the registration deadline is January 12, 2025.
  • (26 September 2024): lavaan version 0.6-19 has been released on CRAN. See Version History for more information.

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) 
summary(fit)