Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem with variance matrix is nonsymmetric or highly singular.

    Hello, I am trying to use the traj command but am running into the "matrix is nonsymmetric or highly singular" problem I tried using the matrix start = and start() command shown below to start the MLE at different values but I'm not getting any success. I know that the "matrix is nonsymmetric or highly singular" problem arises when you have a sparse indicator but I am using the zip (zero inflated poission) model in the traj command so this should help with the high number of 0s, any advice on what to do would be helpful.



    matrix strt = -2.3, 0.15, -0.75, 0.15, -2.6, 0.15, -2.3, 0.15, 46, 46


    traj, model(zip) var(vict_11-vict_43) indep(zage_11-zage_43) weight(gsw12345) order(1,1) iorde(1,1) detail start(strt)

  • #2
    I'm not really familiar with the technique you are applying here. I take it you are using this community contributed command built originally for SAS?

    Do you think it's a problem that your starting matrix is not symmetric? What should the shape of this matrix be?

    Code:
    matrix strt = -2.3, 0.15, -0.75, 0.15, -2.6, 0.15, -2.3, 0.15, 46, 46
    matrix list strt
    assert issymmetric(strt)
    Code:
    . matrix strt = -2.3, 0.15, -0.75, 0.15, -2.6, 0.15, -2.3, 0.15, 46, 46
    
    . matrix list strt
    
    strt[1,10]
          c1    c2    c3    c4    c5    c6    c7    c8    c9   c10
    r1  -2.3   .15  -.75   .15  -2.6   .15  -2.3   .15    46    46
    
    . assert issymmetric(strt)
    assertion is false
    r(9);

    Comment


    • #3
      I use the traj command a lot and I typically see this response when I have added too many groups or when I have too much missing data. So one possibility is that GBTM isn't the best way to analyze your data - you may be better off with a growth curve and assuming the same general trajectory for everyone. Does a one-group solution converge?

      Another thing to do is not specify starting values yourself -- let traj provide them for you. If you add "detail" to the end of your traj command after the comma , the output will include starting values you can use, which speeds up convergence later and can keep the groups in the same order if you add covariates or run the model multiple times.

      Comment


      • #4
        Thanks Adrianne Frech. OP has a few threads on this topic, including one here and a second here. I think OP may be trying to set the starting values in the hopes that will fix the convergence issues. I take it you are skeptical that approach will work?

        Comment


        • #5
          Starting values can aid convergence, but it's not going to get you past too much missing data, which is what this sounds like. The dropout command (from the other posts you have linked) is meant to examine attrition and does indeed make convergence harder as well. I would recommend running the models without dropout and just report on missing data/attrition without using traj to assist (predict attrition using logistic regression, or just describe when/where observations are missing). Imputing data would probably solve all of these problems, but OP would need to be ok with imputing for attrition.

          Comment

          Working...
          X