You are here

TSSEM near 0 heterogeneity variances and Hessian matrix error

7 posts / 0 new
Last post
myng's picture
Offline
Joined: 03/21/2017 - 02:58
TSSEM near 0 heterogeneity variances and Hessian matrix error

Dear Mike and other users,

I am doing random effects TSSEM and had run into problems with openmx status=6 with tssem1(). In earlier communication with Mike, he noted that some of the heterogeneity variances (I2) were near 0 (e.g., .0000, .0001) and said that tssem1() does not handle them well. Thus he suggested fixing the near 0 heterogeneity variances to 0, and letting the larger heterogeneity variance vary with starting value 0.01, then running tssem1() with this user-defined structure:

Try user-defined structure for the random effects

Fix the elements in 1, 2, 3, 4, and 6

RE <- Diag(c(0,0,0,0, "0.01Tau2_5", 0, "0.01Tau2_7", "0.01Tau2_8", "0.01Tau2_9", "0.01*Tau2_10"))
RE
random1 <- tssem1(vector, n, method="REM", RE.type="User",
RE.constraints = RE)

Openmx status became 0 after doing this. I will need to conduct similar analyses with several other datasets and thus have some follow-up questions about fixing heterogeneity variances in further analyses.

  1. Mike suggested previously that I should fix a heterogeneity variance only if there are "NA in the estimated heterogeneity or the OpenMx status is not 0 or 1," and only if the variance is as small as 1e-8 or 1e-10. But how do I check that the heterogeneity variance for any intercept is <1e-8, since the tssem1() output shows only up to 4 decimal places?

  2. For some of my analyses, openmx status is 0 after running/rerunning tssem1() and running tssem2(), but I get the following error message after running tssem2():

hIn .solve(x = objectmx.fit@outputmx.fit@outputcalculatedHessian, parameters = my.name) :
Error in solving the Hessian matrix. Generalized inverse is used. The standard errors may not be trustworthy.

Thus I fixed to 0 the heterogeneity variances between .0000 and .0003 in the tssem1() output, and then reran tssem1() with user-defined structure, which made the error message go away. I can't tell how small the .0000 really is, but the .0003 is >1e-8. So if openmx status=0, is it better to set heterogeneity variances to 0 to avoid the error, or better not to set to 0 if the variances are >1e-8 but get the error?

Does the error really matter for interpretation of findings, since the Std Error is NA in my tssem2() output anyway, and I use the lbound and ubound to interpret whether the coefficients, indirect effect, and direct effect are significant?

Any suggestions or advice would be much appreciated!
Mei Yi

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Hi Mei Yi,

Hi Mei Yi,

Random-effects models are usually preferred to fixed-effects models. For many applied problems, there may not be enough data to estimate all the heterogeneity variances. Another possible reason is that the estimated heterogeneity variances are very small or even negative. An ad-hoc approach is to fix these heterogeneity variances to zero when there are problems.

Referring to your questions,
1. There is no rule saying how small is small. 1e-8 seems small to me. Other values may work as long as you know what you are doing. If your concern is the display of the no. of decimal places, tssem1() uses scientific notation. It should be able to display small numbers without any problems.
2. The error message indicates that some of the parameters may be dependent. If fixing some of the small heterogeneity variances to 0 may help, I will do it.

Mike

hamedsaremi's picture
Offline
Joined: 11/27/2016 - 22:30
Status RED (6) Error in random-effects tssem1()

Hi Mike;

I have had the same problem as Mei Yi regarding random-effects tssem1() (it gives me status 6 error and rerun() does not resolve it either). Following your and Mei Yi's conversation in this thread, I tried to create an RE matrix where I fix the small Tau values to zero. However, running tssem1() with these values generate a non-positive definite error. I have provided my data and the errors in HTML format here: https://www.dropbox.com/s/22vn41hlf9nirvx/tssem1_error.nb.html?dl=0

I would appreciate if you can help me resolve this issue.

Thank you
Hamed

hamedsaremi's picture
Offline
Joined: 11/27/2016 - 22:30
Corrected Link

Mike;
The previous link was broken. I am sorry. Please find the correct link here: https://www.dropbox.com/s/qb4yp4xda0djg4r/tssem1_error?dl=0

Best
Hamed

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Hi Hamed,

Hi Hamed,

It appears that there are not enough data to fit the model. Could you please post your data and R code?

Mike

hamedsaremi's picture
Offline
Joined: 11/27/2016 - 22:30
Hi Mike;

Hi Mike;
Thank you for your response. I actually could resolve the issue by fixing one of close-to-zero variances, in addition to the variances with NA, to zero. This resulted in OpenMx Status Code 0.

I have been running tssem1() on multiple datasets and in some cases, I can reach status code 0 by just fixing variances with NA to zero, but in some other cases, I also need to fix variances that are very small to zero as well.

Best
Hamed

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Hi Hamed,

Hi Hamed,

Yes, you may need to fix the variances at 0 when they are very small, and the number of studies is small.

Mike