[R-sig-ME] Fwd: glmmTMB, glmmADMB for a proportion RV with 0- (and 1-?) inflation

simone santoro simonesantoro77 at gmail.com
Fri Apr 21 17:26:28 CEST 2017


Hi all,


I am trying to test the effect of a continuous variable on a response
variable which represents the proportion of grandchildren generated by the
sons of a certain brood with respect to the total. What I want to
investigate is whether there is a relationship between the predictor and
the differential fitness of sons with respect to daughters. Does, in
response to the predictor, the fitness provided by sons increase at a
different rate than the fitness provided by daughters?

Each row of the data set refers to a certain brood. Broods proceed from
several years that I set as a random intercept.


Data look like this:

https://drive.google.com/open?id=0BwsTfIcebsrOOW1MV1dncThqRUU


I made an attempt to address this question by using a binomial glmmTMB and
glmmadmb with zero inflation (constant in both cases). I found pretty
different results by using glmmTMB and glmmADMB. In fact, I found a
positive and significant relationship (that is what I would have expected
according to the biological hypothesis) with glmmadmb but, quite
surprisingly for me, I found a negative and significant relationship by
using glmmTMB. However, when I remove all the other variables (columns)
from my complete data set I find the similar results for glmmadmb and
glmmTMB. Here below you can see the output for the latter case (data set
without the columns of other variables):

> tmb0<- glmmTMB(malLRSfl/sumLRSfl~fatherA+(1|year),data=dati,zi=~1,
family=binomial,weights=sumLRSfl)

> admb0<- glmmadmb(cbind(malLRSfl,femLRSfl)~fatherA+(1|year),
data=dati,zeroInflation=TRUE,family="binomial")

> summary(tmb0)

 Family: binomial  ( logit )

Formula:          malLRSfl/sumLRSfl ~ fatherA + (1 | year)

Zero inflation:                     ~1

Data: dati

Weights: sumLRSfl



     AIC      BIC   logLik deviance df.resid

  3539.8   3557.8  -1765.9   3531.8      656



Random effects:



Conditional model:

 Groups Name        Variance Std.Dev.

 year   (Intercept) 0.5004   0.7074

Number of obs: 660, groups:  year, 24



Conditional model:

            Estimate Std. Error z value Pr(>|z|)

(Intercept)  1.64559    0.15989  10.292   <2e-16 ***

fatherA     -0.08441    0.03834  -2.202   0.0277 *

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1



Zero-inflation model:

            Estimate Std. Error z value Pr(>|z|)

(Intercept) -0.43521    0.08028  -5.421 5.92e-08 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> summary(admb0)



Call:

glmmadmb(formula = cbind(malLRSfl, femLRSfl) ~ fatherA + (1 |

    year), data = dati, family = "binomial", zeroInflation = TRUE)



AIC: 3383.2



Coefficients:

            Estimate Std. Error z value Pr(>|z|)

(Intercept)   2.0206     0.2182    9.26   <2e-16 ***

fatherA      -0.1100     0.0521   -2.11    0.035 *

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1



Number of observations: total=1943, year=24

Random effect variance(s):

Group=year

            Variance StdDev

(Intercept)   0.9543 0.9769



Zero-inflation: 0.401  (std. err.:  0.019392 )



Log-likelihood: -1687.62



I have noted that the number of observations does not match between glmmTMB
and glmmadmb because the first does not count when malLRSfl/sumLRSfl=NaN
(i.e. when 0/0). In fact, if I use cbind also in glmmTMB the number of
observations becomes the same (but this is the only change in the summary).

I would appreciate a lot some help to understand this difference and,
besides that, I would like to ask you whether you consider this approach
sound. For instance, I have realized that a betabinomial distribution might
be better given the distribution of response variable (below without the
0/0 values). However, I wonder if in this case a zero-and-one inflated
betabinomial approach would be more logic but I have not found a way of
running it in a glmm fashion.

https://drive.google.com/open?id=0BwsTfIcebsrOMFZqWDllc3JmTXc


This is my sessionInfo() (several packages now because I have been trying
many alternatives):

R version 3.3.3 (2017-03-06)

Platform: x86_64-w64-mingw32/x64 (64-bit)

Running under: Windows 7 x64 (build 7601) Service Pack 1



locale:

[1] LC_COLLATE=Spanish_Spain.1252  LC_CTYPE=Spanish_Spain.1252

[3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C

[5] LC_TIME=Spanish_Spain.1252



attached base packages:

 [1] parallel  splines   stats4    stats     graphics  grDevices utils
    datasets  methods

[10] base



other attached packages:

[1] gamlss_5.0-1      nlme_3.1-131      gamlss.data_5.0-0
gamlss.dist_5.0-0 ordinal_2015.6-28

[6] glmmADMB_0.8.4    MASS_7.3-45       glmmTMB_0.1.1     bbmle_1.0.19



loaded via a namespace (and not attached):

 [1] Rcpp_0.12.10      TMB_1.7.9         magrittr_1.5
lattice_0.20-34   minqa_1.2.4

 [6] stringr_1.2.0     plyr_1.8.4        tools_3.3.3       grid_3.3.3
      coda_0.19-1

[11] survival_2.40-1   lme4_1.1-12       numDeriv_2016.8-1
ucminf_1.1-4      Matrix_1.2-8

[16] R2admb_0.7.15     nloptr_1.0.4      stringi_1.1.5

	[[alternative HTML version deleted]]



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