Spencer Graves
2016-Oct-08 18:50 UTC
[Rd] optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
Hello:
The development version of Ecdat on R-Forge contains a vignette
in which optim(?, method=?L-BFGS-B?) stops with an error message while
violating the lower bound.
To see all the details, try the following:
install.packages("Ecdat",
repos="http://R-Forge.R-project.org")
Then do "help(pac=Ecdat)" -> "User guides, package
vignettes and
other documentation" -> "Ecdat::AverageIncomeModels".
I've found other optimizers that will get around the problem in
this case but none that performs as well as optim with many other problems.
Thanks,
Spencer Graves
p.s. I've also tested bobyqa{minqa} or nloptr{nloptr}, recommended in a
vignette in the lme4 package. These did better than optim in this
example but worse in others I tried.
Ravi Varadhan
2016-Oct-08 19:29 UTC
[Rd] optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
Have you tried "optimx" package that John Nash and I wrote? The main
purpose is to be able to readily compare multiple optimizers on a particular
class of problems and see which one seems to do the best. It doesn't
include nloptr, but most other optimizers are there.
Ravi
________________________________________
From: R-devel <r-devel-bounces at r-project.org> on behalf of Spencer
Graves <spencer.graves at prodsyse.com>
Sent: Saturday, October 8, 2016 2:50 PM
To: R-devel
Subject: [Rd] optim(?, method=?L-BFGS-B?) stops with an error message while
violating the lower bound
Hello:
The development version of Ecdat on R-Forge contains a vignette
in which optim(?, method=?L-BFGS-B?) stops with an error message while
violating the lower bound.
To see all the details, try the following:
install.packages("Ecdat",
repos="http://R-Forge.R-project.org")
Then do "help(pac=Ecdat)" -> "User guides, package
vignettes and
other documentation" -> "Ecdat::AverageIncomeModels".
I've found other optimizers that will get around the problem in
this case but none that performs as well as optim with many other problems.
Thanks,
Spencer Graves
p.s. I've also tested bobyqa{minqa} or nloptr{nloptr}, recommended in a
vignette in the lme4 package. These did better than optim in this
example but worse in others I tried.
______________________________________________
R-devel at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Spencer Graves
2016-Oct-08 21:43 UTC
[Rd] optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
Hi, Ravi:
Thanks. I got the following:
> optimx.out[order(optimx.out$value),
+ c('Q.lvl', 'Q.slope', 'H', 'value',
'kkt1', 'kkt2')]
Q.lvl Q.slope H
nlminb 0.001806087 0.000000e+00 0.000000e+00
nmkb 0.001806177 6.924995e-13 1.563012e-12
L-BFGS-B 0.001939930 -1.084202e-19 0.000000e+00
spg 0.001422563 2.308140e-01 0.000000e+00
bobyqa 0.001423449 9.622976e-01 0.000000e+00
hjkb 1.000000000 1.000000e+00 1.000000e+00
Rcgmin NA NA NA
Rvmmin NA NA NA
value kkt1 kkt2
nlminb -3.869081e+02 FALSE TRUE
nmkb -3.869081e+02 FALSE FALSE
L-BFGS-B -3.866286e+02 FALSE TRUE
spg -3.010668e+02 FALSE FALSE
bobyqa -2.726830e+02 FALSE FALSE
hjkb 3.515507e+02 NA NA
Rcgmin 8.988466e+307 NA NA
Rvmmin 8.988466e+307 NA NA
'L-BFGS-B' returned the same violation of the constraint that
lower = 0 as before. 'nlminb' and 'nmkb' got essentially the
same
answer, but neither seemed confident they had the minimum. 'nmkb'
reported the same 'value' as 'nlminb', but the parameter values
were at
the boundary for nlminb and not for nmkb. When I started optimx with
nlminb, the first 5 decided that was the best and the last 3 failed, as
before.
I've added this to my vignette on this.
Thanks,
Spencer Graves
On 10/8/2016 2:29 PM, Ravi Varadhan wrote:> Have you tried "optimx" package that John Nash and I wrote? The
main > purpose is to be able to readily compare multiple optimizers on a
>
particular class of problems and see which one seems to do the best. >
It doesn't include nloptr, but most other optimizers are there. > >
Ravi
________________________________________ From: R-devel >
<r-devel-bounces at r-project.org> on behalf of Spencer Graves >
<spencer.graves at prodsyse.com> Sent: Saturday, October 8, 2016 2:50 >
PM
To: R-devel Subject: [Rd] optim(?, method=?L-BFGS-B?) stops with > an
error message while violating the lower bound > > Hello: > > >
The
development version of Ecdat on R-Forge contains a vignette in > which
optim(?, method=?L-BFGS-B?) stops with an error message while >
violating the lower bound. > > > To see all the details, try the
following: > > > install.packages("Ecdat",
repos="http://R-Forge.R-project.org") > > > Then do
"help(pac=Ecdat)" ->
"User guides, package vignettes and > other documentation" ->
"Ecdat::AverageIncomeModels". > > > I've found other
optimizers that
will get around the problem in this > case but none that performs as
well as optim with many other > problems. > > > Thanks, Spencer
Graves >
> > p.s. I've also tested bobyqa{minqa} or nloptr{nloptr},
recommended
> in a vignette in the lme4 package. These did better than optim in >
this example but worse in others I tried. > >
______________________________________________ R-devel at r-project.org >
mailing list https://stat.ethz.ch/mailman/listinfo/r-devel >
[[alternative HTML version deleted]]
Mark Leeds
2016-Oct-08 22:00 UTC
[Rd] optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
Hi Spencer: See the link below about L-BFGS-B below because I had problems with it a good while back (and I think the link description is the cause but I can't prove it ) so eventually I moved to the Rvmmin(b) package. It's a package but really an algorithm. Rvmmin(b) uses a variable-metric algorithm similar to that of L-BFGS-B but without the problem below. It's not surprisingly a creation of John Nash and quite impressive based on my experience. Just like L-BFGS, it can implement box constraints by adding the b. http://users.eecs.northwestern.edu/~morales/PSfiles/acm-remark.pdf On Sat, Oct 8, 2016 at 2:50 PM, Spencer Graves <spencer.graves at prodsyse.com> wrote:> Hello: > > > The development version of Ecdat on R-Forge contains a vignette in > which optim(?, method=?L-BFGS-B?) stops with an error message while > violating the lower bound. > > > To see all the details, try the following: > > > install.packages("Ecdat", repos="http://R-Forge.R-project.org") > > > Then do "help(pac=Ecdat)" -> "User guides, package vignettes and > other documentation" -> "Ecdat::AverageIncomeModels". > > > I've found other optimizers that will get around the problem in this > case but none that performs as well as optim with many other problems. > > > Thanks, > Spencer Graves > > > p.s. I've also tested bobyqa{minqa} or nloptr{nloptr}, recommended in a > vignette in the lme4 package. These did better than optim in this example > but worse in others I tried. > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel[[alternative HTML version deleted]]
Spencer Graves
2016-Oct-08 23:03 UTC
[Rd] optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
Hi, Mark et al.:
Thanks, Mark.
Three comments:
1. Rvmmin was one of the methods I tried after Ravi
directed me to optimx. It returned NAs for essentially everything. See
my email of this subject stamped 4:43 PM Central time = 21:43 UTC.
2. It would be interesting to know if the current
algorithm behind optim and optimx with method='L-BFGS-B' incorporates
Morales and Nocedal (2011) 'Remark on ?Algorithm 778: L-BFGS-B: Fortran
Subroutines for Large-Scale Bound Constrained Optimization?'. I created
this vignette and started this threat hoping that someone on the R Core
team might decide it's worth checking things like that.
3. The vignette mentioned below was extracted from a
larger vignette fitting several models that seem to encounter
convergence problems. I should probably switch to optimx using all the
methods that offers for constrained optimization, including nminb.
Best Wishes,
Spencer Graves
On 10/8/2016 5:00 PM, Mark Leeds wrote:> Hi Spencer: See the link below about L-BFGS-B below because I had
> problems
> with it a good while back (and I think the link description is the
> cause but I can't prove it ) so eventually I moved to the Rvmmin(b)
> package. It's a package but really an algorithm. Rvmmin(b) uses a
> variable-metric algorithm similar to that of L-BFGS-B but without the
> problem below. It's not surprisingly a creation of John Nash and quite
> impressive based on my experience. Just like L-BFGS, it can implement
> box constraints by adding the b.
>
> http://users.eecs.northwestern.edu/~morales/PSfiles/acm-remark.pdf
>
<http://users.eecs.northwestern.edu/%7Emorales/PSfiles/acm-remark.pdf>
>
>
>
>
>
>
>
> On Sat, Oct 8, 2016 at 2:50 PM, Spencer Graves
> <spencer.graves at prodsyse.com <mailto:spencer.graves at
prodsyse.com>> wrote:
>
> Hello:
>
>
> The development version of Ecdat on R-Forge contains a
> vignette in which optim(?, method=?L-BFGS-B?) stops with an error
> message while violating the lower bound.
>
>
> To see all the details, try the following:
>
>
> install.packages("Ecdat",
repos="http://R-Forge.R-project.org
> <http://R-Forge.R-project.org>")
>
>
> Then do "help(pac=Ecdat)" -> "User guides,
package vignettes
> and other documentation" ->
"Ecdat::AverageIncomeModels".
>
>
> I've found other optimizers that will get around the problem
> in this case but none that performs as well as optim with many
> other problems.
>
>
> Thanks,
> Spencer Graves
>
>
> p.s. I've also tested bobyqa{minqa} or nloptr{nloptr},
> recommended in a vignette in the lme4 package. These did better
> than optim in this example but worse in others I tried.
>
> ______________________________________________
> R-devel at r-project.org <mailto:R-devel at r-project.org>
mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> <https://stat.ethz.ch/mailman/listinfo/r-devel>
>
>
[[alternative HTML version deleted]]
Seemingly Similar Threads
- optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
- optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
- optim(…, method=‘L-BFGS-B’) stops with an error message while violating the lower bound
- optim(?, method=?L-BFGS-B?) stops with an error
- optim(…?=, =?utf-8?Q?method=‘L-BFGS-B’) stops with an error message while violating the lower bound