algal nonlinear mixed effects problem
I put up an example data set from modeling working-memory accuracy as a negative exponential function of presentation time and working-memory load with nlme() and nlmer() at the Potsdam Mind Research Repository (http://read.psych.uni-potsdam.de/pmr2/ ) under "R Playground"; click at: Modeling Time-Accuracy Functions with nlmer(). (I still have to graduate to RPubs.) Finally, a small correction of a typo in my previous post: I changed the start value of "asymp.R1" (not of "asymp.R2"), as shown in the protocol. On Tue, Jan 1, 2013 at 11:17 AM, Reinhold Kliegl
<reinhold.kliegl at gmail.com> wrote:
Thanks, Ben, for the illustration of how to use derive(), deparse(), and eval() for setting up such functions. The following is based on lme4_0.999999-0. I modified Ben's attempt at a fit in two ways to get convergence. (1) The start argument threw an Error; I provide the values in a vector rather than a list. This might be related to differences between nlmer implementations. (2) The start value for asymp.R2 had to be moved away from 0. The result suggests that there is no reliable evidence for the variance component associated with "asymp.R1" A part of the protocol is listed below. Happy New Year to everyone. Reinhold Kliegl Here is the protocol:
# 4. Attempt the fit nlmerfit2 <- nlmer(
+ X ~ fpl(Day, asymp.L, asymp.R1, asymp.R2, asymp.R3, xmid, scale) ~ + asymp.R1|Individual, + start = list(nlpars=c(asymp.L=0.7, + asymp.R1=0.6,asymp.R2=0,asymp.R3=0,xmid=5,scale=1)),data=d) Fehler: length(start$fixef) > 0 is not TRUE
nlmerfit2a <- nlmer(
+ X ~ fpl(Day, asymp.L, asymp.R1, asymp.R2, asymp.R3, xmid, scale) ~ + asymp.R1|Individual, + start = c(asymp.L=0.6, asymp.R1=0,asymp.R2=0,asymp.R3=0,xmid=5,scale=1),data=d) Fehler in mer_finalize(ans) : Downdated X'X is not positive definite, 5.
nlmerfit2b <- nlmer(
+ X ~ fpl(Day, asymp.L, asymp.R1, asymp.R2, asymp.R3, xmid, scale) ~ + asymp.R1|Individual, + start = c(asymp.L=0.6, asymp.R1=.1,asymp.R2=0,asymp.R3=0,xmid=5,scale=1),data=d)
nlmerfit2b
Nonlinear mixed model fit by the Laplace approximation
Formula: X ~ fpl(Day, asymp.L, asymp.R1, asymp.R2, asymp.R3, xmid,
scale) ~ asymp.R1 | Individual
Data: d
AIC BIC logLik deviance
16.11 32.02 -0.05555 0.1111
Random effects:
Groups Name Variance Std.Dev.
Individual asymp.R1 8.9101e-22 2.985e-11
Residual 2.0575e-03 4.536e-02
Number of obs: 54, groups: Individual, 9
Fixed effects:
Estimate Std. Error t value
asymp.L -2.173e+02 2.187e+05 -0.001
asymp.R1 6.140e+01 5.002e+04 0.001
asymp.R2 -1.917e-02 4.370e+00 -0.004
asymp.R3 -1.207e-01 2.752e+01 -0.004
xmid 6.152e+03 6.167e+06 0.001
scale 4.807e+03 3.610e+06 0.001
Correlation of Fixed Effects:
asym.L asy.R1 asy.R2 asy.R3 xmid
asymp.R1 -0.357
asymp.R2 -0.677 -0.446
asymp.R3 -0.677 -0.446 1.000
xmid -1.000 0.357 0.677 0.677
scale -0.597 0.962 -0.185 -0.185 0.597
On Mon, Dec 31, 2012 at 10:09 PM, Ben Bolker <bbolker at gmail.com> wrote:
Ben Bolker <bbolker at ...> writes:
Inspired by a recent question of Diego Pujoni's on the list ( http://article.gmane.org/gmane.comp.lang.r.lme4.devel/9363/match= ), I started working on the problem, with two realizations: 1. the problem really needs a nonlinear fit: see http://rpubs.com/bbolker/3363 2. I have no idea how to do an nlmer fit with a non-trivial fixed-effects model (e.g. in nlme we could do nlmefit1 <- nlme(model = X ~ SSfpl(Day, asymp.L, asymp.R, xmid, scale), fixed = list(asymp.R ~ Group, xmid + scale + asymp.L ~ 1), random = asymp.R ~ 1 | Individual, ...) This was raised earlier on stack overflow:
Reinhold Kliegl e-mailed off-list to say that he was able to do it / had to do it by hacking up an objective function that accounts for the grouping (i.e., more or less doing it by hand). I have implemented this and updated http://rpubs.com/bbolker/3363 , which also shows a solution with AD Model Builder; it turns out that at least the development version of nlmer is a little too fragile to fit the model I wanted to fit (I haven't tested with the stable version).
_______________________________________________ R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models