Standardized estimates under equality constraints

Posted on
Picture of user. brandmaier 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.

[code]
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
[/code]

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

Replied on Sun, 04/13/2014 - 15:05
Picture of user. RobK Joined: 04/19/2011

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.

Replied on Mon, 04/14/2014 - 11:48
Picture of user. tbates Joined: 07/31/2009

In reply to by RobK

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

Replied on Mon, 04/14/2014 - 12:25
Picture of user. RobK Joined: 04/19/2011

In reply to by tbates

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.

Replied on Fri, 05/30/2014 - 16:17
Picture of user. AdminRobK Joined: 01/24/2014

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.