mirt 1.19 on CRAN

92 views
Skip to first unread message

Phil Chalmers

unread,
Aug 18, 2016, 11:29:18 PM8/18/16
to mirt-package
Binaries should be available from CRAN soon. New features and bug fixes are available here: https://cran.r-project.org/web/packages/mirt/news.html. Cheers.

Phil

Keith Lau

unread,
Aug 23, 2016, 10:15:24 PM8/23/16
to mirt-package
Hi Phil,

What is exactly the "a penalized version of the BFGS algorithm"  you refer to? (R package or methods?)

Phil Chalmers於 2016年8月19日星期五 UTC+8上午11時29分18秒寫道:

Phil Chalmers

unread,
Aug 23, 2016, 10:19:54 PM8/23/16
to Keith Lau, mirt-package
Neither, it's the typical optim() function, but the objective log-likelihood is modified such that if a parameter goes outside the bound (say, a variance drops below 0) then a very large value is returned to deter the optimizer from that location. 

I've found in simulations this works considerably better than the L-BFGS-B, and isn't as prone to early hangups in the estimation process (the L-BFGS-B often stopped after only a few iterations without so much as throwing a warning). 

Phil

--
You received this message because you are subscribed to the Google Groups "mirt-package" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mirt-package+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Phil Chalmers

unread,
Oct 1, 2016, 2:31:19 PM10/1/16
to Keith Lau, mirt-package
This is good news: the robust BFGS variant is no longer required because I located the previous issue with the L-BFGS-B optimizer. Hence, in the next version the L-BFGS-B will again be used automatically when box-constraints are detected (no need for the current less kosher optimizer hack, which is now deprecated). Cheers.

Phil

Keith Lau

unread,
Oct 3, 2016, 9:22:31 AM10/3/16
to mirt-p...@googlegroups.com, genw...@gmail.com
Hi Phil,

I have experimented (purely) on the effect of bound constraint:

~~~
data <- expand.table(LSAT7)
sv <- mirt(data, 1, pars='values')
sv$ubound[2] <- 0
sv$value[2] <- -1
mod <- mirt(data, 1,pars=sv)
coef(mod, printSE = TRUE, as.data.frame = TRUE)
~~~

The BFGS did not work. (not sure about others).


By the way, I sometimes play the mirt package with nlminb or optim. I personally feel nlminb is more robust than optim (e.g., does not tend to terminate in initial iterations). Have you found that?


Phil Chalmers於 2016年10月2日星期日 UTC+8上午2時31分19秒寫道:

Phil


Phil

To unsubscribe from this group and stop receiving emails from it, send an email to mirt-package...@googlegroups.com.

Phil Chalmers

unread,
Oct 3, 2016, 9:57:49 AM10/3/16
to Keith Lau, mirt-package
Too bad, I guess even my ad-hoc fix wasn't the best. The behaviour looks fine on the latest dev though. Perhaps I'll push out the update a bit earlier to make this available faster.

I have noticed that the nlminb optimizer is more stable in some extreme situations, though I'm not sure it will be generally true any more now that L-BFGS-B has been patched (try with the latest dev if you're interested). I've also found it to be a lot slower at times, so chose not to use it as the default. 

Phil

On Mon, Oct 3, 2016 at 9:22 AM, Keith Lau <genw...@gmail.com> wrote:
Hi Phil,

I have experimented (purely) on the effect of bound constraint:

~~~
data <- expand.table(LSAT7)
sv <- mirt(data, 1, pars='values')
sv$ubound[2] <- 0
sv$value[2] <- -1
mod <- mirt(data, 1,pars=sv)
coef(mod, printSE = TRUE, as.data.frame = TRUE)
~~~

The BFGS did not work. (not sure about others).


By the way, I sometime play the mirt package with nlminb or optim. I personally feel nlminb is more robust than optim (e.g., does not tend to terminate in initial iterations). Have you found that?



Phil Chalmers於 2016年10月2日星期日 UTC+8上午2時31分19秒寫道:
This is good news: the robust BFGS variant is no longer required because I located the previous issue with the L-BFGS-B optimizer. Hence, in the next version the L-BFGS-B will again be used automatically when box-constraints are detected (no need for the current less kosher optimizer hack, which is now deprecated). Cheers.

Phil

On Tue, Aug 23, 2016 at 10:19 PM, Phil Chalmers <rphilip....@gmail.com> wrote:
Neither, it's the typical optim() function, but the objective log-likelihood is modified such that if a parameter goes outside the bound (say, a variance drops below 0) then a very large value is returned to deter the optimizer from that location. 

I've found in simulations this works considerably better than the L-BFGS-B, and isn't as prone to early hangups in the estimation process (the L-BFGS-B often stopped after only a few iterations without so much as throwing a warning). 

Phil

On Tue, Aug 23, 2016 at 10:15 PM, Keith Lau <genw...@gmail.com> wrote:
Hi Phil,

What is exactly the "a penalized version of the BFGS algorithm"  you refer to? (R package or methods?)

Phil Chalmers於 2016年8月19日星期五 UTC+8上午11時29分18秒寫道:
Binaries should be available from CRAN soon. New features and bug fixes are available here: https://cran.r-project.org/web/packages/mirt/news.html. Cheers.

Phil

--
You received this message because you are subscribed to the Google Groups "mirt-package" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mirt-package...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "mirt-package" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mirt-package+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages