Problème sortie modèle ZINB mixte (package glmmTMB)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Amalia Rataud
Messages : 2
Enregistré le : 24 Sep 2021, 09:26

Problème sortie modèle ZINB mixte (package glmmTMB)

Messagepar Amalia Rataud » 27 Sep 2021, 13:38

Bonjour à tous,
Toute nouvelle sur ce forum (et novice dans la maitrise du logiciel R), je sollicite votre aide et vos bons conseils pour un problème que je rencontre lors de l’exécution d’un modèle ZINB mixte à l’aide du package glmmTMB. Je m’intéresse à l’effet de l’année (ANNEE), de caractéristiques individuelles (SEX_AGE) et de l’espèce (Nom.vernaculaire) sur la charge en tiques d’oiseaux (TQ). Je souhaite obtenir les variances de 2 effets (espèce aviaire et année) sur cette charge en tiques. Pour ce faire, j’ai réalisé le modèle ZINB mixte suivant :

Code : Tout sélectionner

head(senart_ab)

Code : Tout sélectionner

Nom.scientifique     BAGUE       DATE ESPECE SEXE AGE       Nom.vernaculaire ID_PROG TQ      MI  MA ANNEE MOIS AGE_CAT SEX_AGE
1 Aegithalos caudatus 2V0006866 2018-05-19 AEGCAU    F +1A Mésange à longue queue     204  0 BUISSON 8,1  2018  mai     +1A femelle
2 Aegithalos caudatus 2V0006865 2018-05-19 AEGCAU    F +1A Mésange à longue queue     204  0 BUISSON 7,6  2018  mai     +1A femelle
3 Aegithalos caudatus 2V0006864 2018-05-19 AEGCAU   NA  1A Mésange à longue queue     204  0 BUISSON 7,3  2018  mai     -1A   jeune
4 Aegithalos caudatus 2V0006809 2017-06-17 AEGCAU   NA  1A Mésange à longue queue     204  0 BUISSON 8,3  2017 juin     -1A   jeune
5 Aegithalos caudatus   2E00092 2014-05-31 AEGCAU   NA  1A Mésange à longue queue     204  0      NA 8,1  2014  mai     -1A   jeune
6 Aegithalos caudatus   2E00091 2014-05-31 AEGCAU   NA  1A Mésange à longue queue     204  0      NA 8,2  2014  mai     -1A   jeune
  Nest.type WeightU_MEAN hauteur.moyenne.alimentation hauteur.moyenne.alimentation2 Human.settlements MA2 moy_ad_senart MA_litt
1        CA          8.5                        240.5                         2.405                 0 8.1      7.961111     8.5
2        CA          8.5                        240.5                         2.405                 0 7.6      7.961111     8.5
3        CA          8.5                        240.5                         2.405                 0 7.3      7.961111     8.5
4        CA          8.5                        240.5                         2.405                 0 8.3      7.961111     8.5
5        CA          8.5                        240.5                         2.405                 0 8.1      7.961111     8.5
6        CA          8.5                        240.5                         2.405                 0 8.2      7.961111     8.5

Code : Tout sélectionner

library(glmmTMB)
PR_zinb_mixte<-glmmTMB(TQ~SEX_AGE+(1|ANNEE)+(1|Nom.vernaculaire), data=senart_ab,
                       ziformula = ~SEX_AGE+(1|ANNEE)+(1|Nom.vernaculaire), family=nbinom2(link="log"))


Un warning message apparait lorsque j’exécute le modèle :


Code : Tout sélectionner

Warning messages:
1: In fitTMB(TMBStruc) :
  Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')
2: In fitTMB(TMBStruc) :
  Model convergence problem; false convergence (8). See vignette('troubleshooting')


Et le modèle renvoie des NA pour les valeurs d’AIC, BIC, LogLik et deviance, bien que j’obtienne les valeurs des variances :


Code : Tout sélectionner

summary(PR_zinb_mixte)

Code : Tout sélectionner

Family: nbinom2  ( log )
Formula:          TQ ~ SEX_AGE + (1 | ANNEE) + (1 | Nom.vernaculaire)
Zero inflation:      ~SEX_AGE + (1 | ANNEE) + (1 | Nom.vernaculaire)
Data: senart_ab

     AIC      BIC   logLik deviance df.resid
      NA       NA       NA       NA     2223

Random effects:

Conditional model:
 Groups           Name        Variance Std.Dev.
 ANNEE            (Intercept) 0.04533  0.2129 
 Nom.vernaculaire (Intercept) 1.89253  1.3757 
Number of obs: 2234, groups:  ANNEE, 13; Nom.vernaculaire, 13

Zero-inflation model:
 Groups           Name        Variance Std.Dev.
 ANNEE            (Intercept)  0.1271  0.3565 
 Nom.vernaculaire (Intercept) 10.9560  3.3100 
Number of obs: 2234, groups:  ANNEE, 13; Nom.vernaculaire, 13

Overdispersion parameter for nbinom2 family (): 1.98

Conditional model:
               Estimate Std. Error z value Pr(>|z|)   
(Intercept)     1.10573    0.10366   10.67   <2e-16 ***
SEX_AGEfemelle -0.91884    0.07762  -11.84   <2e-16 ***
SEX_AGEmale    -1.09739    0.07626  -14.39   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Zero-inflation model:
               Estimate Std. Error z value Pr(>|z|)   
(Intercept)     -3.8508     0.3187 -12.083  < 2e-16 ***
SEX_AGEfemelle   0.5782     0.3160   1.830  0.06728 . 
SEX_AGEmale      1.0731     0.4139   2.593  0.00952 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Idem lorsque je fais le modèle avec l’interaction espèce/année en effet aléatoire :


Code : Tout sélectionner

toto2<-glmmTMB(TQ~SEX_AGE+(1|ANNEE:Nom.vernaculaire), data=senart_ab,
                       ziformula = ~SEX_AGE+(1|ANNEE:Nom.vernaculaire),
                       family=nbinom2(link="log"))

Code : Tout sélectionner

Warning messages:
1: In fitTMB(TMBStruc) :
  Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')
2: In fitTMB(TMBStruc) :
  Model convergence problem; false convergence (8). See vignette('troubleshooting')


Code : Tout sélectionner

summary(toto2)


Code : Tout sélectionner

Family: nbinom2  ( log )
Formula:          TQ ~ SEX_AGE + (1 | ANNEE:Nom.vernaculaire)
Zero inflation:      ~SEX_AGE + (1 | ANNEE:Nom.vernaculaire)
Data: senart_ab

     AIC      BIC   logLik deviance df.resid
      NA       NA       NA       NA     2225

Random effects:

Conditional model:
 Groups                 Name        Variance Std.Dev.
 ANNEE:Nom.vernaculaire (Intercept) 2.083    1.443   
Number of obs: 2234, groups:  ANNEE:Nom.vernaculaire, 169

Zero-inflation model:
 Groups                 Name        Variance Std.Dev.
 ANNEE:Nom.vernaculaire (Intercept) 4.425    2.104   
Number of obs: 2234, groups:  ANNEE:Nom.vernaculaire, 169

Overdispersion parameter for nbinom2 family (): 2.05

Conditional model:
               Estimate Std. Error z value Pr(>|z|)   
(Intercept)     1.02986    0.03072   33.53   <2e-16 ***
SEX_AGEfemelle -0.93989    0.09003  -10.44   <2e-16 ***
SEX_AGEmale    -1.20229    0.07280  -16.51   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Zero-inflation model:
               Estimate Std. Error z value Pr(>|z|)   
(Intercept)    -2.43913    0.03215  -75.87   <2e-16 ***
SEX_AGEfemelle  0.13219    0.10136    1.30    0.192   
SEX_AGEmale    -0.10641    0.01220   -8.72   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Pouvons-nous malgré tout nous fier aux valeurs des variances renvoyées ? Auriez-vous une idée de la raison pour laquelle j’obtiens des NA pour les valeurs d’AIC et comment y remédier ?

Je vous remercie pour votre aide.

Bien cordialement,

Amalia Rataud

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Problème sortie modèle ZINB mixte (package glmmTMB)

Messagepar Logez Maxime » 28 Sep 2021, 06:54

Bonjour,

Je ne vais pas être d'une grande aide sur la question.
Premièrement est-ce que tu as essayé de faire

Code : Tout sélectionner

vignette('troubleshooting')

Comme recommandé par le message d'erreur ?

Ensuite non, tu ne peux pas te fier aux sorties que tu as eu, puisque le modèle n'a pas convergé.
Soit il te faut jouer sur les paramètres associés à la convergence, comme le nombre d'itérations ou le niveau de précision (dangereux), soit tu peux simplifier ton modèle, soit tu passes à des modèles bayésiens pour l'estimation des paramètres;

Cordialement,
Maxime

Amalia Rataud
Messages : 2
Enregistré le : 24 Sep 2021, 09:26

Re: Problème sortie modèle ZINB mixte (package glmmTMB)

Messagepar Amalia Rataud » 07 Oct 2021, 14:42

Bonjour,

Merci beaucoup pour votre réponse et vos conseils. Je vais continuer à creuser !

Bien cordialement,

Amalia


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité