1. Multifactor Specification
We have focused so far on how to specify and analyze one-factor models. You will often want to examine multiple latent variables and their relationships, and this section will explore multi-factor models, as well as some new specification tools.
2. Multifactor models
In the first section, we created a model of visual speed with one latent variable and six manifest variables using the Holzinger dataset. That model indicated poor fit indices, likely because we put together two underlying factors into one latent variable by combining visual skills and speeded skills.
3. Why not two small models?
One solution might be to separate the model into two smaller models with three manifest variables each. This type of model will run in lavaan but presents two problems.
4. Why not two small models? (2)
First, the models will not be identified, and notice in the output that these models have zero degrees of freedom. Remember that identification is tied to the number of items you estimate. With three manifest variables, we can estimate six parameters. This model includes six parameters: two coefficients and four variances. We want to fix these models to have at least one degree of freedom.
5. Specify Constraints
Constraints are used to fix non-identified models, and other problems that might appear, which we will discuss later. In a constraint, we set the parameters equal to each other, thus only calculating one number instead of several. For example, we will set x2 and x3 to have the same loading value, which will give the model at least one degree of freedom because we did not estimate two separate numbers. The first variable after the equals tilde is always the marker variable that is used to scale the model, as discussed previously.
Therefore, we will put letters in front of the x2 and x3 variables to set them equal to each other. If you use numbers, you will set the loading to that exact number. The letters indicate the name of the loading, and since they are both labeled "a", we they will get the same estimate.
6. Output with Constraints
You will see the label in the output, and under estimate, both x2 and x3 have the same loading. Notice that the completely standardized solution does show you different loadings, indicating their different relationship to the latent variable. These differences occur because the completely standardized solution is z scored on both the latent and the manifest variables.
7. Specify a Multifactor Model
The second problem with splitting into two separate models is that you do not capture the relationship between the latent variables, and it would be better to put them together into one larger model. To create more latent variables, you will start a new line within the model specification code. Then use the same structure as before: name the latent variable a name that is not used in the dataset, equals tilde, and the names of the manifest variables from the dataset. You will analyze the model as you have learned, using the cfa() and summary() functions. Notice that a model with both latent variables and six manifest variables is identified with eight degrees of freedom, where the one-factor models individually had to be constrained to reach one degree of freedom. In the next section, we will examine the output for multifactor models.
8. Let's practice!
In the exercises, you will practice creating identified models using constraints and building multifactor models.