[R-sig-ME] allFit fails after removing object with starting values for model parameters from workspace

Gerrit Eichner gerr|t@e|chner @end|ng |rom m@th@un|-g|e@@en@de
Thu Aug 8 15:41:06 CEST 2019


Thx a lot, Ben, for the fast reply which clearly explains the
cause of my problem. I've just found a solution which works for
me (and which is not as simple as "don't delete theta" ;-) ):
I "hardwire" theta's value into the function call:

theta <- c(1, 0.01, 0.2)
fm <- eval(bquote(
    lmer(Reaction ~ Days + (Days | Subject), data = sleepstudy,
         start = .(theta))
    ))

rm(theta)
allFit(fm, verbose = FALSE)


Works like a "charm", at least in my current workflow. :-)

  Thanks once more  --  Gerrit

---------------------------------------------------------------------
Dr. Gerrit Eichner                   Mathematical Institute, Room 212
gerrit.eichner using math.uni-giessen.de   Justus-Liebig-University Giessen
Tel: +49-(0)641-99-32104          Arndtstr. 2, 35392 Giessen, Germany
http://www.uni-giessen.de/eichner
---------------------------------------------------------------------

Am 08.08.2019 um 15:26 schrieb Ben Bolker:
> 
>    This is not surprising, as allFit() uses update(), which tries to
> re-evaluate the function ... at the very least allFit needs a
> documentation update with that hint ... (I also notice at a glance that
> the allFit docs seem to be incomplete anyway).
> 
>    If you say more about your workflow we might be able to find a way to
> help.  (If your workflow is this simple then the answer would be "well
> then don't delete theta" ...)
> 
>    cheers
>      Ben Bolker
> 
> 
> On 2019-08-08 9:06 a.m., Gerrit Eichner wrote:
>> Dear lmer-experts,
>>
>> if I refit a fitted model with all available optimizers AFTER
>> removing the object which contains the starting values for the
>> parameters of the model as in
>>
>> theta <- c(1, 0.01, 0.2)
>> fm <- lmer(Reaction ~ Days + (Days | Subject), data = sleepstudy,
>>             start = theta)
>> rm(theta)
>> allFit(fm, verbose = FALSE)
>>
>> none of the optimizers succeeds:
>>
>> original model:
>> Reaction ~ Days + (Days | Subject)
>> optimizers (7): bobyqa, Nelder_Mead, nlminbwrap, nmkbw, optimx.L-BFGS-B,
>> nloptwrap.NLOPT_LN_N...
>> 7 optimizer(s) failed
>> differences in negative log-likelihoods:
>> max= -Inf ; std dev= NA
>> Warning messages:
>> 1: In min(nllvec) : no non-missing arguments to min; returning Inf
>> 2: In max(nllvec - min(nllvec)) :
>>    no non-missing arguments to max; returning -Inf
>>
>>
>> If I don't remove theta from my workspace everything works fine.
>> Is there a workaround for this - from my perspective - unwanted
>> behaviour? (I have situations where allFit is used in a different
>> environment from the one wherein the model was fit, e.g., after
>> fitting the model the object which contains the fit is saved and
>> later loaded in another R-session to be processed by allFit.)
>> I could, of course, save theta everytime as well ... Any ideas?
>>
>>   Best regards  --  Gerrit
>>
>> ---------------------------------------------------------------------
>> Dr. Gerrit Eichner                   Mathematical Institute, Room 212
>> gerrit.eichner using math.uni-giessen.de   Justus-Liebig-University Giessen
>> Tel: +49-(0)641-99-32104          Arndtstr. 2, 35392 Giessen, Germany
>> http://www.uni-giessen.de/eichner
>>
>> _______________________________________________
>> R-sig-mixed-models using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> 
> _______________________________________________
> R-sig-mixed-models using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>



More information about the R-sig-mixed-models mailing list