robust standard errors and CIs using umx

Posted on
No user picture. lior abramson Joined: 07/21/2017
Forums
Dear umx Experts,
I ran an ADE Cholesky model with 4 variables. When trying to obtain CIs for the one-headed paths (using the command umxConfint), I got weird CIs and the note "alpha level not reached" near some of the CIs. After consultation in the behavioral genetics forum, I understood that this the result of an optimization problem.

AdminRobK suggested that instead of looking at the CIs, I will try to get robust standard errors, then use mxSE() to get standard errors for the elements and form a CI from those standard errors

My question is- how can I obtain robust standard errors for a model that was built in umx (as opposed to openMx)?

Note: I tried to use the imxRobustSE() command, but I got the following error:
Error: Unknown expected covariance name 'top.expCovMZ' detected in the expectation function of model 'MZ'

My guess is that I need to do some sort of adaptation to the model before running this command. Any suggestion will be very appreciated.

Thank you very much,
Lior

Replied on Sun, 05/17/2020 - 13:30
Picture of user. tbates Joined: 07/31/2009

`imxRobustSE` help says it doesn't work with multi-group models. Nor with multi-level models, so it will fail for all twin models.

You might want to create an issue on the github requesting support for robust SEs in multi-group models.

Perhaps also make a separate issue requesting that the function detect multiple group input as invalid and helpfully alert the user, rather than returning errors about unexpected covariance names in expectation functions...

Regarding the `umxConfint` results. I would see if you can use these (i.e., they might be sensible). You might also try just requesting the single values that failed, sometimes they will work when they're the only job. If only one bound is failing, see if information in the other bound can do the job for you, using a CI which is symmetrical around the estimate.

Regarding SEs, at this point, I would just go ahead with SEs, using `mxSE()`, taking care for any important value, to test significance of the parameter, by dropping it from the model in `umxModify(m1, ..., comp=TRUE)`

Replied on Sun, 05/17/2020 - 14:26
Picture of user. AdminRobK Joined: 01/24/2014

imxRobustSE help says it doesn't work with multi-group models. Nor with multi-level models, so it will fail for all twin models.

Not so. The man page for imxRobustSE() says that "[t]his function does not work correctly with multigroup models in which the groups themselves contain subgroups, or in which groups contain references to objects in other groups". It would work with a twin model in which each group does not contain any subgroups, and nothing in each group references anything outside the group. The latter part about references is a known issue.

Replied on Mon, 05/18/2020 - 14:24
Picture of user. AdminRobK Joined: 01/24/2014

Come to think of it, `imxRobustSE()` would also work in a twin model in which the grouping variables (like zygosity and sex) are definition variables. But at any rate, lior abramson, I apologize for sending you down the wrong path--I didn't realize that umx-generated twin models would fail with `imxRobustSE()`.