I would like to produce this type of figure from the article "Thinking twice about sum scores".

Figure 3 shows the path diagram of a congeneric model for the same data used in Fig. 1. The major difference is that the loadings from the latent true score to each observed item score are now uniquely estimated for each item, as are the error variances for each item (noted by the subscripts on the parameter labels represented by Greek letters). In order to uniquely estimate the loadings for each item, the variance of the latent true score is constrained to a specific value (1.0 is a popular value to give this latent variable a standardized metric).

enter image description here

Is this the correct model specification for the type of model shown in the figure?


model <- '
    visual =~ x1 + x2 + x3

fit <- cfa(model, data = HolzingerSwineford1939)


This is proof of concept for a more complicated example, so it does not worry me that making a latent factor out of these three indicators might not make sense, be robust, etc. I'm more interested in the model specification and plotting.


1 Answer 1


The default in lavaan::cfa() is to set the latent scale by fixing the first loading to 1. To instead standardize the latent variable (and estimate the first and other loadings), set the argument std.lv=TRUE.

fit <- cfa(model, data = HolzingerSwineford1939, std.lv = TRUE)

Alternatively, you can do this manually in the ?model.syntax

model <- '
  visual =~ NA*x1 + x2 + x3
  visual ~~ 1*visual


  • $\begingroup$ thanks for this. Very helpful. Do you happen to know if there is a package or options that will replicate the plot style more closely? I think the authors used mplus, but I'm not sure if their diagram comes from mplus or is hand drawn. With your help I think the model specification is now correct, so just thinking about the display. $\endgroup$
    – Eric Green
    Commented Feb 22, 2023 at 15:51
  • 1
    $\begingroup$ (In my experience) using software to automatically draw path diagrams based on a model will never give you quite what you want. You need to draw it yourself - there are lots of packages that do a good job, but PowerPoint / Google Slides are good enough 99% of the time. $\endgroup$ Commented Feb 22, 2023 at 17:07
  • $\begingroup$ Also, that diagram is asymmetric, which would drive me a little crazy if it was mine. $\endgroup$ Commented Feb 22, 2023 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.