Standardized estimates under equality constraints

4 replies [Last post]
brandmaier's picture
Offline
Joined: 02/04/2010

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

AttachmentSize
lgcm.png141.1 KB
lgcmdel.csv9.24 KB
AdminRobK's picture
Offline
Joined: 01/24/2014
OpenMx 2.0

It might interest you that OpenMx v2.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.

RobK's picture
Offline
Joined: 04/19/2011
The standardized estimates

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.

tbates's picture
Offline
Joined: 07/31/2009
nice!

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:

free parameters:
         name matrix row col   Estimate   Std.Error Std.Estimate      Std.SE lbound ubound
1     G_to_x1      A  x1   G 0.39715439 0.015550001   0.89131051 0.034897963              
2     G_to_x2      A  x2   G 0.50366016 0.018232611   0.93255442 0.033758680              
3     G_to_x3      A  x3   G 0.57724179 0.020448606   0.94384674 0.033435470              
4     G_to_x4      A  x4   G 0.70277454 0.024011674   0.96236267 0.032881014              
5     G_to_x5      A  x5   G 0.79625104 0.026669755   0.97255579 0.032574933              
6  x1_with_x1      S  x1  x1 0.04081418 0.002812717   0.20556557 0.014166592              
7  x2_with_x2      S  x2  x2 0.03801999 0.002805789   0.13034225 0.009618962              
8  x3_with_x3      S  x3  x3 0.04082720 0.003152308   0.10915334 0.008427836              
9  x4_with_x4      S  x4  x4 0.03938697 0.003408863   0.07385809 0.006392269              
10 x5_with_x5      S  x5  x5 0.03628700 0.003678547   0.05413524 0.005487889              
 
confidence intervals:
                       lbound   estimate     ubound
One Factor.Az[1,1] 0.00000000 0.00000000 0.00000000
One Factor.Az[1,2] 0.00000000 0.00000000 0.00000000
One Factor.Az[1,3] 0.00000000 0.00000000 0.00000000
One Factor.Az[1,4] 0.00000000 0.00000000 0.00000000
One Factor.Az[1,5] 0.00000000 0.00000000 0.00000000
One Factor.Az[1,6] 0.87060003 0.89131051 0.90888247
One Factor.Az[2,1] 0.00000000 0.00000000 0.00000000
One Factor.Az[2,2] 0.00000000 0.00000000 0.00000000
One Factor.Az[2,3] 0.00000000 0.00000000 0.00000000
One Factor.Az[2,4] 0.00000000 0.00000000 0.00000000
</code?

RobK's picture
Offline
Joined: 04/19/2011
Thanks, Tim! Bear in mind

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.