Multilevel factor analysis seems to be the technical term for factor analysis with repeated measures, judging from this abstract. To be precise, following Wikipedia's factor analysis notation, the model I want to build is

$$x_i =l_{i1} F_1 + \cdots + l_{ik} F_k + z_i + \varepsilon_i$$

where $x_i$ is the $i$th observed variable (already centered and scaled, say), an $n\times 1$ vector. The thing that makes this model different from ordinary factor analysis is the presence of the $n\times 1$ vector $z_i$ on the right-hand side; this is a vector of fixed or random effects that correspond to the repeated measures. Specifically, $z_{i(p)} = z_{i(q)}$ whenever the $p$th and $q$th records come from the same individual.

Multiple queries similar to this one exist (here and here). This question is only slightly more general while hopefully also more expository:

(A) Where can I find a publicly available and detailed description of multilevel factor analysis?

(B) What software exists to do multilevel factor analysis in a pretty straightforward way? Solutions involving R, SAS, Python, or Latent GOLD are of particular interest.

  • $\begingroup$ Given your explanation, in what respect does it differ from performing the standard factoring on the variables $x$, each averaged across the RM-levels (that is, inside each individual)? If the "individual bias" factor $z_i$ is modelled $x_i$-specific and independent of the common factors $F$ - and it is how it appears in your model - then $z_i$ can be safely assessed and cancelled before factor analysis. $\endgroup$
    – ttnphns
    Sep 5, 2014 at 9:07
  • $\begingroup$ @ttnphns, you seem to understand the model. Your proposal is to estimate $z_i$ and subtract it from both sides of the equation before doing factor analysis, right? But $z_i$ is latent -- how do you propose to estimate $z_i$? In particular, it seems like the estimates would depend on the factor analysis fitted values. $\endgroup$
    – zkurtz
    Sep 5, 2014 at 12:56
  • $\begingroup$ In my comment I said that in your model formulation - as I understood it - $z_i$ does not appear to be latent. And why should it? In FA, latent are factors common to different $x$'s. With your model, $z_i$ is $x_i$-specific and does not interact with the factors. So why not get rid of $z_i$ prior FA? $\endgroup$
    – ttnphns
    Sep 5, 2014 at 13:16
  • $\begingroup$ It's easy to imagine situations in which $z_i$ is observable, but in my applications it is not. $\endgroup$
    – zkurtz
    Sep 5, 2014 at 21:40

1 Answer 1


Such models are also known as two- or three-level models in the SEM literature, which I believe is what is called multilevel CFA by others although they may well just consider a factor or latent variable on the left hand side of your equation. Two and three-level SEMs consider subjects with possible repeated measures nested within groups. Latent growth curve and latent transition analysis are two examples that account for time-varying observations. Another example is a two-level model where the within-level part of the model describes the factor structure for how subjects' responses to a set of items covary across subjects, while the between-level part of the model describes how the individual means covary across items.

The Mplus software offers great flexibility in modeling a combination of latent and observed variables, taking into account many design effects (survey weights, repeated measures, etc.). It is even possible to incorporate and specify individual random effect in path analysis which looks like what you are after if I understand your design correctly. Chapter 9 of the Mplus manual (Multilevel Modeling with Complex Survey Data) has several examples that may provide a good start.

Other than that, here are is a good reference from one of the author of Mplus: Muthen, B.O. (1994). Multilevel covariance structure analysis. Sociological Methods and Research, 22, 376–398.

I don't know if R (lavaan or OpenMx packages) or Stata (glamm or built-in tools) have such capabilities.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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