Announcement

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

  • Mixlogit with 'corr' option: convergence issue

    Dear all,

    I am encountering a convergence problem with the 'mixlogit' command (written by Arne Risa Hole), using STATA 16.0 for windows.

    I performed a discrete choice experiment with 5 attributes (specified random, hereafter regrouped under $att) + price (fixed). I also included an ASC (specified random). My dataset contains 5,373 observations. I am using 1,000 Halton draws for estimation:

    mixlogit chosen price, rand(ASC $att) group(HHID_card) id(HHID) nrep(1000)
    eststo model1, title("MXL")
    matrix b=e(b)


    When I run this command, I obtain results after 12 iterations and quite rapidly (10 min).

    Now, I would like to use the mixlogit command while allowing for full covariance, using the ‘corr’ option (and with starting values obtained from the mixed logit model without correlation, like described by Professor Hole here: http://www.timberlake.co.uk/media/pd.../uk13_hole.pdf):

    matrix start = b[1,1..15],0,0,0,0,0,0,0,0,0,0,0,0,b[1,16],0,0,0,0,0,0,0,0,0,0,0,b[1,17],0,0,0,0,0,0,0,0,0,0,b[1,18],0,0,0,0,0,0,0,0,0,b[1,19],0,0,0,0,0,0,0,0,b[1,20],0,0,0,0,0,0,0,b[1,21],0,0,0,0,0,0,b[1,22],0,0,0,0,0,b[1,23],0,0,0,0,b[1,24],0,0,0,b[1,25],0,0,b[1,26],0,b[1,27]

    mixlogit chosen price, rand(ASC $att) group(HHID_card) id(HHID) nrep(1000) corr from(start,copy)
    eststo model2, title("MXL corr")


    The estimation is not converging, even after over 48 hours and over 150 iterations.

    Does anyone have an idea how I could solve this issue?

    Many thanks in advance,

    Laura





  • #2
    Welcome to the non-convergence club, unfortunately there is no fixed path to termination of your membership. You may try some combination of the following.

    (1) 0s may not be the best starting values. You may want to experiment with something else e.g. alternate between 0.1 and -0.1.

    (2) You can try numerical optimisation techniques other than the default -technique(nr)-, e.g. add -technique(bfgs 5 nr 5)- or -technique(bfgs)- as an option.

    (3) Adding the option -difficult- occasionally helps.

    (4) You may increase the number of initial draws to discard, e.g. add the option -burn(100)-.

    (5) Instead of estimating the model at nrep = 1000, you may estimate the model at a smaller number of draws (e.g. -nrep(200)-), and use the results as starting values for nrep = 1000. You can also move up gradually e.g. -nrep(200)- to -nrep(500)- to -nrep(750)- to -nrep(1000)-.

    If nothing works, you may consider applying heuristic optimisation algorithms to search for starting values, as Arne Risa Hole and I describe in [this paper]. You can download the associated software package from [here]. It's written in Stata and works with -mixlogit-.

    Comment


    • #3
      Many many thanks! I will try all of this and hopefully something will work.

      Comment


      • #4
        Dear Hong Il Yoo,

        It finally worked, thanks to a combination of your little tricks! However, there are some missing values (.) for the standard errors, z-stats and CI 95% of the estimated coefficients. How come?

        Also, this may be a silly question, but I was wondering why SD coefficients for each random variable were not estimated when the ‘corr’ option is used? And why "wtp" does not give me CI 95% either.

        Thanks again for your help!!

        Comment

        Working...
        X