Announcement

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

  • IRT 2PL converging very slowly

    Hi All,

    I am running the same IRT 2PL model on a dataset with N=3800 and 90 binary correct/incorrect questions. I execute the following code:

    Code:
        * keep test questions only
        keep `varlist' 
        
        * drop test questions with no variation (all correct, incorrect, or missing)
        foreach v of varlist `varlist' {
            qui su `v'
            if `r(min)' == `r(max)' drop `v'
            
        }
        
        * execute IRT
        irt 2pl *

    Then, I get the following output in the course of an hour:

    Code:
    Fitting fixed-effects model:
    
    Iteration 0:   log likelihood = -59359.816  
    Iteration 1:   log likelihood = -58770.459  
    Iteration 2:   log likelihood = -58739.195  
    Iteration 3:   log likelihood = -58738.806  
    Iteration 4:   log likelihood = -58738.803  
    
    Fitting full model:
    
    Iteration 0:   log likelihood = -53512.642  (not concave)
    Iteration 1:   log likelihood = -47149.536  (not concave)
    Iteration 2:   log likelihood =  -44276.88  (not concave)
    Iteration 3:   log likelihood = -43419.177  (not concave)
    Iteration 4:   log likelihood = -43419.933  (not concave)
    Iteration 5:   log likelihood = -43419.937  (not concave)
    Iteration 6:   log likelihood = -43421.084  (not concave)
    Iteration 7:   log likelihood =  -43420.58  (not concave)
    Iteration 8:   log likelihood = -43420.456  (not concave)
    Iteration 9:   log likelihood = -43420.208  (not concave)
    Iteration 10:  log likelihood = -43388.661  (not concave)
    Iteration 11:  log likelihood = -43389.113  (not concave)
    Iteration 12:  log likelihood = -43389.478  (not concave)
    Iteration 13:  log likelihood = -43389.929  (not concave)
    Iteration 14:  log likelihood = -43390.409  (not concave)
    Iteration 15:  log likelihood = -43390.748  (not concave)
    Iteration 16:  log likelihood = -43391.297  (not concave)
    Iteration 17:  log likelihood =  -43391.53  (not concave)
    Iteration 18:  log likelihood = -43392.171  (not concave)
    Iteration 19:  log likelihood = -43392.359  (not concave)
    Iteration 20:  log likelihood =  -43392.91  (not concave)
    Iteration 21:  log likelihood = -43393.361  (not concave)
    Iteration 22:  log likelihood = -43393.899  (not concave)
    Iteration 23:  log likelihood = -43393.914  (not concave)
    Iteration 24:  log likelihood = -43393.079  (not concave)
    Iteration 25:  log likelihood = -43393.492  (not concave)
    Iteration 26:  log likelihood = -43393.691  (not concave)
    Iteration 27:  log likelihood = -43394.232  (not concave)
    Iteration 28:  log likelihood = -43394.041  (not concave)
    Iteration 29:  log likelihood =  -43394.15  (not concave)
    Iteration 30:  log likelihood = -43394.174  (not concave)
    Iteration 31:  log likelihood =  -43393.97  (not concave)
    Iteration 32:  log likelihood = -43387.279  (not concave)
    Iteration 33:  log likelihood = -43387.743  (not concave)
    Iteration 34:  log likelihood = -43366.804  (not concave)
    Iteration 35:  log likelihood = -43366.193  (not concave)
    Iteration 36:  log likelihood = -43354.845  (not concave)
    Iteration 37:  log likelihood = -43319.461  (not concave)
    Iteration 38:  log likelihood = -43319.701  (not concave)
    Iteration 39:  log likelihood = -43315.466  (not concave)
    Iteration 40:  log likelihood = -43315.052  (not concave)
    Iteration 41:  log likelihood = -43315.599  (not concave)
    Iteration 42:  log likelihood = -43315.196  (not concave)
    Iteration 43:  log likelihood = -43315.745  (not concave)
    After waiting so long, I stopped executing because I assumed it would never converge. Is there any chance I just have to wait longer? And if it won't converge, are there any diagnostics I can run to figure out why?

    Thanks,

    Julian

  • #2
    In case this is still a problem try uirt:
    Code:
    ssc install uirt
    uirt v*
    and see if it converged. uirt automatically drops items with zero variance and negative discrimination and it does not care much how your items are coded. Also, if it runs into convergence problems there is a chance you get informative (item-level) feedback on the cause.

    If you run into any problems, describe them and I could guide you to a solution. Maybe you will need priors if you have some items of extreme easiness. Problems may also arise if the unidimensionality assumption is violated too much. Many reasons why IRT models converge with a misfit or won't converge at all, usually they are very data-specific.

    Comment

    Working...
    X