[R-sig-ME] Trouble looping model using glmmTMB
Viraj Torsekar
viraj.torsekar at gmail.com
Mon Apr 9 12:38:23 CEST 2018
Oh, wow. That example was uncannily similar to my dataset (distributions
and absolute numbers too)! But there are two differences. The x (in the
y~x+(1|f)) in my dataset is a probability with a bimodal distribution, best
described by x=rbeta(n, .1, .2). And the y is zero-inflated with around 75%
of the values being zeroes. So I changed the zprob in emdbook::rzinbinom to
0.77 instead of 0.2.
I made these two changes and ran the routine. The model ran for the whole
100 iterations, but with 30 warnings. These warnings involved: 'NA/NaN
function evaluation', 'Model convergence problem; false convergence' and
'Model convergence problem; non-positive-definite Hessian matrix'. Does
that mean it's working all right?
I'm currently trying to use your example on my code and checking if that
works. Will update here soon.
p.s. - I have started a new issue on the glmmTMB discussion forum. For
anyone interested: https://github.com/glmmTMB/glmmTMB/issues/318
Thank you,
Viraj
On 8 April 2018 at 23:51, Ben Bolker <bbolker at gmail.com> wrote:
> Can you post a reproducible example? This example (which I set up to
> match what I thought you were describing) seems to work OK at least
> for 20 bootstrap reps, still waiting on the 100-rep run ... [might be
> better to continue this conversation at
> https://github.com/glmmTMB/glmmTMB/issues ...]
>
> ## simulate primary example data
> set.seed(101)
> nobs <- 479
> ng <- 110
> dd <- data.frame(x=rnorm(nobs),f=factor(sample(ng,size=nobs,
> replace=TRUE)))
> library(emdbook)
> rf <- rnorm(ng)
> dd$y <- emdbook::rzinbinom(nobs,mu=exp(2+dd$x+rf[dd$f]),zprob=0.2,size=1)
>
> ## fit primary model
> library(glmmTMB)
> m0 <- glmmTMB(y~x+(1|f),data=dd,family="nbinom2",zi=~1)
>
> ## npar bootstrap by levels
> bootsamp <- function(data=dd,grp=dd$f) {
> ss <- split(data,grp)
> bg <- levels(grp)
> bootgrps <- sample(grp,size=length(grp),replace=TRUE)
> do.call(rbind,ss[bootgrps])
> }
>
> ## test
> update(m0,data=bootsamp())
>
> nboot <- 100
> ## run bootstrap reps
> res <- matrix(ncol=4,nrow=nboot)
> for (i in seq(nboot)) {
> print(i)
> set.seed(100+i)
> bootfit <- update(m0,data=bootsamp())
> res[i,] <- unlist(fixef(bootfit))
> }
>
> On Sun, Apr 8, 2018 at 10:27 AM, Viraj Torsekar
> <viraj.torsekar at gmail.com> wrote:
> > Hello all,
> >
> > I'm trying to find out if distance moved by crickets is a function of
> > predation risk. My response variable is 'distance moved' and the
> predictor
> > is probability of spatial proximity with predator, ranging from 0 to 1.
> The
> > response variable is zero-inflated (about 77% values are zeroes) and its
> > variance is far higher than its mean. Hence, I tried running
> zero-inflated
> > negative binomial mixed models using glmmADMB, which failed (mixed
> because
> > I have multiple values per individual). Following was the error I kept
> > encountering: "function maximizer failed" (attaching a text file with
> > details of this model by keeping debug=TRUE).
> >
> > Hence, I shifted to glmmTMB (version: 0.2.0), on Dr. Bolker's advice, and
> > it worked! But the problem is, when I try bootstrapping the model using
> to
> > obtain confidence intervals, I keep getting the following error after
> > varying number of runs: 'Error in optimHess(par.fixed, obj$fn, obj$gr):
> > gradient in optim evaluated to length 1 not 5'. This non-parametric
> > bootstrapping routine involves for loops in which the model is run using
> > bootstrapped groups (belonging to the grouping variable; individual.id
> in
> > my case) and the model coefficients thus obtained constitute the
> confidence
> > intervals. I've tried running 10,000 iterations, but the error pops up
> > within 10 to 100 runs.
> >
> > Does anyone have suggestions regarding what can be changed?
> >
> > Details of the model run singly and not in the loop:
> >
> > Family: nbinom2 ( log )
> > Formula: movement.whole ~ poc + (1 | female.id)
> > Zero inflation: ~1
> > Data: incrisk_females_comm
> >
> > AIC BIC logLik deviance df.resid
> > 1725.1 1745.9 -857.5 1715.1 474
> >
> > Random effects:
> >
> > Conditional model:
> > Groups Name Variance Std.Dev.
> > female.id (Intercept) 0.07924 0.2815
> > Number of obs: 479, groups: female.id, 110
> >
> > Overdispersion parameter for nbinom2 family (): 1.59
> >
> > Conditional model:
> > Estimate Std. Error z value Pr(>|z|)
> > (Intercept) 4.66384 0.14161 32.93 <2e-16 ***
> > poc -0.08815 0.20978 -0.42 0.674
> > ---
> > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> >
> > Zero-inflation model:
> > Estimate Std. Error z value Pr(>|z|)
> > (Intercept) 1.2442 0.1098 11.34 <2e-16 ***
> >
> > Please do mention if you need further details. Thank you in advance.
> >
> > Viraj Torsekar,
> > PhD Candidate,
> > Centre for Ecological Sciences,
> > Indian Institute of Science
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-mixed-models at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
[[alternative HTML version deleted]]
More information about the R-sig-mixed-models
mailing list