Wed, 04/09/2014 - 08:00

I was wondering how OpenMx treats standardized estimates under equality constraints.

I ran a linear latent growth curve model in OpenMx and constrained all residual variances to be equal. Not surprisingly, they all get to be the same unstandardized estimate. However, OpenMx reports only a single standardized estimate for the residual, which happens to be the one associated with the first observation. Even if the unstandardized estimates are constrained to be equal, the unstandardized ones need not be and in reality seldom are the same.

name matrix row col Estimate Std.Error Std.Estimate Std.SE lbound ubound 1 e S x1 x1 1.0607526 0.08676699 0.6267662 0.05126796

I attach the diagram of my exemplary model, which I created with Onyx. Standardized coefficients are given in parentheses next to unstandardized estimates. For parameter epsilon, OpenMx reports 0.63, which is the value associated with x1. My feeling is that OpenMx should report the complete set of standardized coefficients. Or was this a deliberate design decision?

Thanks,

Andreas

Attachment | Size |
---|---|

lgcm.png | 141.1 KB |

lgcmdel.csv | 9.24 KB |

It might interest you that

OpenMxv2.0 has a new function,`mxStandardizeRAMpaths()`

, which provides a table of standardized values for ALL nonzero path coefficients, even if they correspond to the same unstandardized parameter.The standardized estimates are calculated during the resolution of

`summary()`

for the purpose of populating the 'free parameters' table. That table has one row per unique free (unstandardized) parameter. Thus, as you've noticed, multiple instances of the same unstandardized parameter resulting from equality constraints do not yield multiple entries for differing estimates of their corresponding standardized parameters.In this thread, I provide a general-purpose workaround to this problem, which makes OpenMx explicitly compute the standardized values with mxAlgebras.

Nice solution in the other thread!

I guess in this case the correct thing to do for users is to return in summary() additional rows with entries only in the standardized columns for entries whose label is the same as the ("first") free parameter with that label?

This also highlights a use for confidence intervals returning the parameter label, not the square bracket address (to avoid users having to match up things like this:

Thanks, Tim!

Bear in mind that there are no parameter labels anywhere in

`Az`

, since it's an algebra, and therefore a function of the free parameters rather than a container for the parameters themselves.