[R-sig-ME] Poor mixing and autocorrelation of ZIP data in MCMCglmm

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Tue Jun 9 15:17:57 CEST 2020


   Silly question: did you center all of your continuous predictors?

On 6/9/20 6:49 AM, Vital Heim wrote:
> Good morning,
>
> Currently, I am working on a Zero-Inflated Poisson Generalized Linear Mixed
> Model using the MCMCglmm package in R. I am looking at the food uptake of
> animal at a tourism provisioning site. I try to understand what variables
> impact the amount of food/bait the animals consume.
>
> The response variable (bait uptake) is zero-inflated. I have 6 fixed
> effects (nr. tourists, nr. operators at the site, nr. conspecifics,
> temperature, presence time of the animal at the site, and gender of the
> animal). Presence time of the animal and temperature are only entered
> at.level(trait, 1), all the other fixed effects are entered into the ZI
> part and the count part of the model. I have two random effects for ID of
> the animal and the provisioning event.
>
> Here is the model specification:
>
>
> modelZI.9 <- MCMCglmm(bait ~ trait - 1
>
>                        + trait:conspecifics + trait:tourists +
> trait:operators + at.level(trait,1):presence +
> at.level(trait,1):temperature
>
>                        + trait:gender
>
>                        , random = ~idh(trait):id + idh(trait):event
>
>                        , rcov =~ idh(trait):units
>
>                        , data=df, family="zipoisson", prior=prior6
>
>                        , nitt=NITT*MULT, burnin=BURN*MULT, thin = THIN*MULT,
> verbose=FALSE)
>
>
>
>
> I started with the chain parameters: nitt = 120000, burn = 20000, thin =
> 100 to get an effective sample size of 1000. My first prior was:
>
>
>
> prior.base<-list(R=list(V=diag(c(1,1)), nu=0.002, fix=2)
>
>              ,G=list(G1=list(V=diag(c(1,1)), nu=0.002, fix=2)
>
>              ,G2=list(V=diag(c(1,1)), nu=0.002, fix=2)))
>
>
>
> The chosen parameters and prior resulted in a very poor mixing of the ZI
> effects as well as the both random effects. The effective sample sizes for
> the ZI effects were very low (less than 100). I adjusted the chain
> parameters (see below) I also adjusted the prior to account for
> overdispersion in the fixed effects and making the prior stronger for the
> random intercepts. There was autocorrelation in my ZI fixed effects so I
> increased the thinning while increasing nitt and burn accordingly to get an
> effective size of 1100. These measures improved the model in some parts.
> However, I tried to validate my prior choice and parameters settings by
> reading the literature to see if I am not doing anything “illegal” with my
> model. By now the parameters and prior gives me slightly better mixing. I
> was able to get the random effect ID mixing nicely but only when I set the
> nu = 100.002, which seems very high to me.
>
>   These are my current chain parameters and my prior:
>
> NITT <- 185000
>
> BURN <- 15000
>
> THIN <- 150
>
> MULT <- 10
>
>
>
> prior6<-list(R=list(V=diag(c(1e-6,1)), nu=10.002, fix=2)
>
>               ,G=list(G1=list(V=diag(c(1,1)), nu=100.002, fix=2)
>
>               ,G2=list(V=diag(c(1,1)), nu=0.002, fix=2)))
>
>
>
> The autocorrelation diagnostics are:
>
> 0.075907049                 NaN
>
>   > autocorr.diag(modelZI.9$Sol)
>             bait          zi_bait      bait:conspecifics
> zi_bait:conspecifics   bait:tourists     zi_bait:tourists   bait:operators
> Lag 0      1.00000000    1.00000000      1.0000000000           1.00000000
>         1.00000000          1.000000000      1.000000000
> Lag 1500  -0.03158767    0.45992662     -0.0216380764           0.52372246
>        -0.02650593          0.546651545     -0.027195064
> Lag 7500   0.02284612    0.15705391      0.0114730973           0.12436415
>         0.03518200          0.122140444     -0.010875426
> Lag 15000  0.04558767    0.06901158     -0.0131587465           0.05700078
>         0.05371373          0.054479522      0.024634961
> Lag 75000  0.03567369    0.04099224     -0.0005695797           0.02014238
>        -0.02546435         -0.006299296     -0.005569035
>              zi_bait:operators     presence temperature
>   bait:gendermale       zi_bait:gendermale
> Lag 0              1.00000000  1.000000000  1.00000000
> 1.000000000               1.00000000
> Lag 1500           0.43279808 -0.004789598 -0.03151510
>   -0.002708028               0.33387297
> Lag 7500           0.05697190  0.012426457  0.02221331
>   -0.025070273               0.11236772
> Lag 15000          0.05472752 -0.043356418  0.04499879
>   -0.003589775               0.05618167
> Lag 75000          0.03342174 -0.007475513  0.03201374
> 0.015790374              -0.03167048
>
>> autocorr.diag(modelZI.9$VCV)
>                  bait.id       zi_bait.id       bait.dive
>   zi_bait.dive       bait.units       zi_bait.units
> Lag 0       1.000000000              NaN      1.00000000                NaN
>       1.000000000                 NaN
> Lag 1500   -0.026735489              NaN      0.03018431                NaN
>       0.003349623                 NaN
> Lag 7500   -0.051666715              NaN     -0.02011165                NaN
>      -0.048462744                 NaN
> Lag 15000   0.003918555              NaN     -0.02777388                NaN
>      -0.001752476                 NaN
> Lag 75000   0.028123317              NaN     -0.01640397                NaN
>       0.075907049                 NaN
>
>
>
> I therefore wanted to ask if there are suggestions on how I could improve
> the mixing of my model without choosing these drastic changes or are these
> changes in the range of what I am allowed to do to my model?
>
>
> Thank you,
>
> Vital
> --
> *Vital Heim *
>
> *PhD student*
> University of Basel, Switzerland
>
> Bimini Biological Field Station Foundation
> Bimini, Bahamas
>
> +41 (0)79 732 05 57
> vital.heim using gmail.com
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> 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