Fornell-Larcker Criterion with R using lavaan

Jan 17, 2022 · 3 min read
blog

Update 2025

The Fornell-Larcker criterion has been criticized in an influential paper on discriminant validity (Rönkko & Cho, 2022). The authors have kindly created a function to make use of their suggested procedure, available in the semTools package. The function is called discriminantValidity().

Main Post

The Fornell-Larcker criterion (Fornell & Larcker, 1981, p. 41) is a popular technique to check the discriminant validity of constructs in structural equation models. The criterion states that the average variance extracted (AVE) of items by a construct (factor) should be larger than the squared correlation of the latent construct with the discriminant construct. This article shows how to compute the Fornell-Larcker criterion in R with lavaan-based SEM analyses.

We use the classic dataset also used in the lavaan examples, the Holzinger and Swineford (1939) data of mental ability test scores. The factor model consists of three intercorrelated factors (visual, textual, speed), with 9 different tests making up the indicators.

library(tidyverse)
library(lavaan)
library(semTools)

 HS.model <- ' visual  =~ x1 + x2 + x3
              textual =~ x4 + x5 + x6
              speed   =~ x7 + x8 + x9 '
fit <- cfa(HS.model, HolzingerSwineford1939)

The Fornell-Larcker criterion can be applied to test whether the three factors can be discriminated from each other. Let’s consider the two sides of the equation that makes up the criterion: Average Variance Extracted (AVE) and the (squared) correlations of the latent constructs.

AVE is the variance extracted of each indicator by its factor, as indicated by the squared standardized loadings, divided by the total variance of each indicator, averaged over all indicator that are specified to load on the factor. The package semTools provides the AVE of a lavaan model:

AVE(fit)
 visual textual   speed 
  0.371   0.721   0.424 

The squared correlations of the latent constructs can be computed by extracting the correlation of the latent constructs from the fitted lavaan object and squaring them.

lavInspect(fit, what = "cor.lv")^2
        visual textul speed
visual   1.000             
textual  0.210  1.000      
speed    0.221  0.080 1.000

To relate the AVE to the squared correlations, I have written a function that we will load next.

source("https://raw.githubusercontent.com/franciscowilhelm/r-collection/master/forn_larcker_test.R")

Let us assume we are interested in whether the visual factor can be discriminated from the textual and speed factors according to the Fornell-Larcker criterion. We supply the fitted lavaan object, as well as x (“our” construct) and y (the constructs that we want to test against) constructs to the function.

forn_larcker_test(fit, x = c("visual"), y = c("textual", "speed"))
# A tibble: 2 × 6
  x      y       criterion latcor_sq ave_x ave_y
* <chr>  <chr>   <lgl>         <dbl> <dbl> <dbl>
1 visual textual TRUE          0.210 0.371 0.721
2 visual speed   TRUE          0.221 0.371 0.424

The function returns the names of the x and y constructs, whether the Fornell-Larcker criterion is met, the squared latent correlation of the x-y pair, as well as the AVE of X and Y. We can see that the Fornell-Larcker criterion is met, as the latent squared correlations are lower than the AVEs of X and Y.

Some papers use a modified version of the Fornell-Larcker criterion, where only the AVE of the X construct, not the AVE of the Y construct, is compared against the latent squared correlation. We can use this version by supplying the x.only = TRUE argument.

forn_larcker_test(fit, x = c("visual"), y = c("textual", "speed"), x.only = TRUE)
# A tibble: 2 × 6
  x      y       criterion latcor_sq ave_x ave_y
* <chr>  <chr>   <lgl>         <dbl> <dbl> <dbl>
1 visual textual TRUE          0.210 0.371 0.721
2 visual speed   TRUE          0.221 0.371 0.424

References

Fornell, C., & Larcker, D. F. (1981). Evaluating Structural Equation Models with Unobservable Variables and Measurement Error. Journal of Marketing Research, 18(1), 39. https://doi.org/10/cwp Rönkkö, M., & Cho, E. (2022). An Updated Guideline for Assessing Discriminant Validity. Organizational Research Methods, 25(1), 6–14. https://doi.org/10.1177/1094428120968614

Francisco Wilhelm
Authors
Postdoc in Work and Organizational Psychology
Hi! I am a postdoc in the Department for Work and Organizational Psychology at the University of Bern, Switzerland. My research interests include career development and career counseling, with a focus on applying theories of motivation and self-regulation. Besides this, I develop packages for the statistical software R.