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