I think this can be done, but I'm having problems seeing a clean solution. Is there a way with OpenMx to predict an outcome using the interaction of two latent variables?
The standard citation on latent variable interactions is a Psycometrika article by Klein & Moosbrugger (2000). Mplus implements some form of this, though I recall it does some variation on the EM algorithm. Could be wrong, though. I'd imagine implementation is possible in OpenMx, but no one has done it yet to my knowledge.
There are some general approaches to latent variable interactions which make the specification of the non-linear constraints much simpler (basically two matrix algebra expressions are required). I wrote about them here:
Neale, M.C. (1998) Modeling interaction and nonlinear effects with Mx: A general approach. In: G. Marcoulides & R. Schumacker Interaction and Non-linear Effects in Structural Equation Modeling pp. 43-61. New York: Lawrence Erlbaum Associates
Among many latent interaction methods have been and being developed, the Kenny-Judd (1984) method (also see Dr Neale's (1998) chapter) is available for OpenMX. Marsh, Wen, and Hau (2004) unconstrained approach helps us to have less non-linear constraint commands.
For the LMS approach, if OpenMX provides numerical integration, Monte Carlo integration, or Gauss-Hermite quadrature integration, it is possible to be implemented by OpenMX.
I think the methods with product indicators (methods mentioned by Heining Cham, and others) are outdated now. There are other methods available in other packages, like Mplus and EQS.
However, for me it is still unclear how the ML method (with all kinds of its variations) can be implemented in openMx. Is there someone who has done this? And is the dev. team planning to implement this method?
Furthermore, in "Structural Equation Modeling" 2010, pages 357- 373, Mooijaart and Bentler propose a method using higher order moments in stead of using only means and covariances. This method is compared to the method of Mplus and seems to be promising also in cases with nonnormally distributed predictors.
I'm not sure if analyzing higher order moments can be done easily in openMx.
In classic Mx, I had some success with implementing Gauss-Hermite quadrature using a mixture distribution (weighted with fixed weights). That should be possible with OpenMx also.
It is possible to specify user-defined fit functions using OpenMx. mxAlgebraObjective() would be the way to go. I recall Peter Bentler publishing a paper on higher moments early in the 80's (BJMSP if I recall correctly) and the matrix algebra was a bit heavy. However, I doubt whether it's anything that OpenMx can't handle.
I think it should be possible using mxEvaluateOnGrid, but have not developed a script for it yet. Joshua Pritikin may do that sometime in the near future, however.
Since this is an old thread, has there been more recent developments on this topic? I'm fairly new to OpenMx and SEM in general, so any articles, scripts, tutorials etc. that demonstrates how to implement latent interactions in OpenMx would be highly appreciated.
So far it is not tested beyond seeing if it looks like it can estimate a path from the latent product variable F1^2. It's not terribly fast, especially if you crank up the number of integration points.
I don't consider this an optimal approach, but it may be functional for some purposes. Note also that the normal theory likelihood function doesn't have any non-normality bits in it, so it is likely inefficient compared to full-information estimators.
Hey Pascal,
The standard citation on latent variable interactions is a Psycometrika article by Klein & Moosbrugger (2000). Mplus implements some form of this, though I recall it does some variation on the EM algorithm. Could be wrong, though. I'd imagine implementation is possible in OpenMx, but no one has done it yet to my knowledge.
There are some general approaches to latent variable interactions which make the specification of the non-linear constraints much simpler (basically two matrix algebra expressions are required). I wrote about them here:
Neale, M.C. (1998) Modeling interaction and nonlinear effects with Mx: A general approach. In: G. Marcoulides & R. Schumacker Interaction and Non-linear Effects in Structural Equation Modeling pp. 43-61. New York: Lawrence Erlbaum Associates
see:
http://www.vipbg.vcu.edu/vipbg/Articles/Chap3-ModelingInteraction-43.pdf
Thanks for the pointers! I'll look into both articles. Thanks!
Dear all,
Among many latent interaction methods have been and being developed, the Kenny-Judd (1984) method (also see Dr Neale's (1998) chapter) is available for OpenMX. Marsh, Wen, and Hau (2004) unconstrained approach helps us to have less non-linear constraint commands.
For the LMS approach, if OpenMX provides numerical integration, Monte Carlo integration, or Gauss-Hermite quadrature integration, it is possible to be implemented by OpenMX.
Heining Cham
I think the methods with product indicators (methods mentioned by Heining Cham, and others) are outdated now. There are other methods available in other packages, like Mplus and EQS.
However, for me it is still unclear how the ML method (with all kinds of its variations) can be implemented in openMx. Is there someone who has done this? And is the dev. team planning to implement this method?
Furthermore, in "Structural Equation Modeling" 2010, pages 357- 373, Mooijaart and Bentler propose a method using higher order moments in stead of using only means and covariances. This method is compared to the method of Mplus and seems to be promising also in cases with nonnormally distributed predictors.
I'm not sure if analyzing higher order moments can be done easily in openMx.
Ab Mooijaart
A couple of points:
In classic Mx, I had some success with implementing Gauss-Hermite quadrature using a mixture distribution (weighted with fixed weights). That should be possible with OpenMx also.
It is possible to specify user-defined fit functions using OpenMx. mxAlgebraObjective() would be the way to go. I recall Peter Bentler publishing a paper on higher moments early in the 80's (BJMSP if I recall correctly) and the matrix algebra was a bit heavy. However, I doubt whether it's anything that OpenMx can't handle.
HTH
Mike
I think it should be possible using mxEvaluateOnGrid, but have not developed a script for it yet. Joshua Pritikin may do that sometime in the near future, however.
Since this is an old thread, has there been more recent developments on this topic? I'm fairly new to OpenMx and SEM in general, so any articles, scripts, tutorials etc. that demonstrates how to implement latent interactions in OpenMx would be highly appreciated.
We have some experimental code, but nothing I can recommend at this time.
Hi Pål
I have a script which goes as far as specifying all 2-way interactions among latent variables, so F1 and F2 yield F1^2, F1F2 and F2^2 factors. I based it on a script for estimating non-normal latent densities (Schmitt J.E., Aggen S.H., Mehta P.D. Kubarych T.S., Neale, M.C. (2006) Semi-Nonparametric Methods for Detecting Latent Non-normality: A Fusion of Latent Trait and Ordered Latent Class Modeling. Multivariate Behavioral Research 2006; 41(4): 427-443)
So far it is not tested beyond seeing if it looks like it can estimate a path from the latent product variable F1^2. It's not terribly fast, especially if you crank up the number of integration points.
I don't consider this an optimal approach, but it may be functional for some purposes. Note also that the normal theory likelihood function doesn't have any non-normality bits in it, so it is likely inefficient compared to full-information estimators.