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 userdefined structure:
Try userdefined 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 followup questions about fixing heterogeneity variances in further analyses.

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 1e8 or 1e10. But how do I check that the heterogeneity variance for any intercept is <1e8, since the tssem1() output shows only up to 4 decimal places?

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 userdefined structure, which made the error message go away. I can't tell how small the .0000 really is, but the .0003 is >1e8. 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 >1e8 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
Hi Mei Yi,
Randomeffects models are usually preferred to fixedeffects 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 adhoc 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. 1e8 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
Hi Mike;
I have had the same problem as Mei Yi regarding randomeffects 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 nonpositive 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
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
Hi Hamed,
It appears that there are not enough data to fit the model. Could you please post your data and R code?
Mike
Hi Mike;
Thank you for your response. I actually could resolve the issue by fixing one of closetozero 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
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