Mplus Standardized Factor Loadings

#1
Hello all,

I'm using Mplus to fit a model with latent variables interaction. I'm using the XWITH command (TYPE = RANDOM) so the standardized estimates are not available.

I obtain the standardized regression weights by dividing the unstandardized ones by the SD of the dependent variable and multiplying by the SD of the independent variable. But, does anyone know how to obtain the standardized factor loadings from the unstandardized ones?

Thanks a lot in advance.
 

Lazar

Phineas Packard
#2
You need to use a specific procedure for standadizing in the context of a latent interaction. Muthen covers it http://www.statmodel.com/download/LV%20Interaction.pdf. You can do it a couple of ways. The easiest way is to fit the model without the latent interaction and note the stdyx loadings of the first item. Now by default mplus identifies the measurement model by constraining the first loading on each latent factor to 1. But it is just 1 by convention it could be any value. Thus if you constrain the loading of the first item in you latent interaction model to the stdyx loading you got from the model without the interaction all results (loadings at the very least) should be on an approximate stdyx metric (near enough at least). e.g.

F12 by item1@.867 item2 item3; !where .867 is the stdyx loading from the model without the interaction.

This has the advantage of making all the latent variance approximately 1 which facilitates the functions below:

In terms of the standadized regression weights your formula is likely incorrect. See the paper I linked to. If you are familiar with R you can get the R^2 proportion R^2 and standadized regression loadings using the following functions that I think are correct :):

Code:
#Formula for computing R squared
R2<- function (v1, rv1) {(v1-rv1)/v1} #where v1 is the total variance in the dependent taken from either a model without the interaction or tech4

#Proportion R squared explained by interaction
PropR2 <- function (b3, v1, v2, v3, cv1){
  #b3 = coef for the interaction predicting the dependent
  #v1 = variance of one of the factors that make up the interaction
  #v2 = variance of the other factors that make up the interaction
  #v3 = variance of the dependent
  #cv1 = covariance between the factors making up the latent interaction
  x1= v1*v2 + cv1^2
  x2 = x1*b3^2
  x2/v3
}

#standadized regression weights for main effects and interaction
#Main effects
B <- function(b,v,v3){
  #b = the coef of interest
  #v = the coef of the independent you are interested in
  # v3 = variance of dependent
  x1 = b/(v3^.5)
  x1*(v^.5)
}

#standadization for interaction
B3std <- function(b3,v1,v2,v3){
  #v1 = variance of one of the factors that make up the interaction
  #v2 = variance of the other factors that make up the interaction
  #v3 = variance of the dependent
  #b3 = coef for the interaction predicting the dependent.
  x1 = b3/(v3^.5)
  x1*(v1^.5)*(v2^.5)
}
EDIT: I checked the functions against Muthen's results in the linked paper. They work as expected.
 
#3
Thank you, Lazar.

I actually followed Muthén's paper to obtain the regression coefficients (main effects and the interaction effect) and R squared. There is no problem with that.

My difficulty was in obtaining the stdyx factor loadings. I'll follow your suggestion. But, you say there are two ways to obtain the stdyx factor loadings... Which is the other? Are Muthén's instructions also valid to obtain the factor loadings? I thought they aren't.
 

Lazar

Phineas Packard
#4
The other way is to just estimate the model without the interaction. The results for the measurement model will be essentially the same in the model with or without the interaction. This and reporting the fit from this model is standard practice.

A third approach is to re-estimate your model using the unconstrained approach to latent interactions rather than LMS. This will give you fit and stdyx without a problem.