Announcement

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

  • SVAR "convergence not achieved"

    Hi there,

    I am using a version of Stata 13.

    I am running an SVAR model with four variables with the following identification scheme for Matrix A and B:

    Code:
      
    matrix A1 = (1,.,.,.\.,1,.,0\0,0,1,0\0,0,0,1)
    matrix B1 = (.,0,0,0\ 0,.,0,0 \ 0,0,.,0\0,0,0,.) 
    
    svar x1 x2 x3 x4, lags(1/2) aeq(A1) beq(B1)

    Stata runs the maximum number of iterations (1600) before declaring that "convergence not achieved". For the last remaining few thousand iterations the log-likelihood has not changed and Stata tells me that each iteration is "(not concave)".

    Stata does however give me a set of results on which I can perform impulse response functions. All the coefficients, apart from one, have standard errors and t values, and the impulse response functions fit with my theoretical predictions. Only one coefficient within the A matrix (the contemporaneous impact of x2 on x1, or "a_1_2" ) does not have a standard error or a t value, even though I do get a number for this coefficient.
    • Is it still possible to use these results?
    • Are the impulse response functions still meaningful?
    • And if not, can you please give me a rough indication why?
    Thanks very much for your help.

    All the best,
    Ben


  • #2
    What is the parameter that is missing a standard error? What does the current value of the parameter estimate mean?

    I have no idea what an SVAR model is. However, I do run into this issue in one other model I sometimes fit. In latent class analysis with binary indicators, sometimes the logit intercept for a parameter will hit or exceed 15, or -15, and the model frequently has trouble declaring convergence. That means that in one latent class, the probability of endorsing the indicator is approaching 1 or 0.

    Substantively, it could just be that the sample is not big enough, and we have a few people in the cell involved, and thus the MLE of the parameter wants to wander off to infinity. In this case, I would have no trouble noting this and constraining the parameter at +/- 15. (Several software packages, such as MPlus, appear to do this automatically.)

    In your case, it's a bit harder to tell why things are going awry. If the coefficient is trending off towards infinity, maybe that's a substantive problem or a data error. I do wonder if x1 and x2 are on vastly different scales, e.g. x1 is 0-2, x2 is 0 to 2 trillion. In that case, you might want to rescale x2. That's just a vague hunch (scaling issues can cause trouble in other contexts).
    Be aware that it can be very hard to answer a question without sample data. You can use the dataex command for this. Type help dataex at the command line.

    When presenting code or results, please use the code delimiters format them. Use the # button on the formatting toolbar, between the " (double quote) and <> buttons.

    Comment


    • #3
      If convergence is not achieved, you need a really good reason to work with it. That really good reason could be that you know as much or more about the model than the people who programmed the command and have a technical argument why their criteria are too fussy. Or you get good results in other software and can explain the difference.

      I'd say as a matter of research ethics you'd be obliged to report non-convergence in that circumstance, and as a reviewer or examiner I would then bounce it back. There is then a discussion about what or who to blame, starting with the model and the data. One asymmetry can bite hard: a reviewer doesn't have to be omniscient about what you should do, but a reviewer has a duty to identify work that is not up to standard.

      Comment

      Working...
      X