Vous êtes sur la page 1sur 28

Modèle linéaire généralisé mixte

GLMM
Master BEE année 2018-2019

Christian Kerbiriou & Kévin Barré


UPMC, Muséum National d’Histoire Naturelle
Conservation des Espèces, Restauration et Suivis des Populations
Kerbiriou@mnhn.fr
Structurer les variables entre-elles
Interaction ?
Polynomiale ?
Ajustement des variables ?
Emboitement ?
Structurer les variables entre-elles
Interaction ?
Polynomiale ?
Ajustement des variables ?
Emboitement ?
Exemple : Existe t-il des différences de diversité des peuplements
d’invertébrés aquatique entre mare et bassins autoroutiers ?

La richesse

Échelle du
prélèvement

Échelle de la mare

En agrégeant les données on perd l’information relative à la variabilité.


Structurer les variables entre-elles
Interaction ?
Polynomiale ?
Ajustement des variables ?
Emboitement ?
Exemple : Existe t-il des différences de diversité des peuplements
d’invertébrés aquatique entre mare et bassins autoroutiers ?

Station(point d’eau)

Relevés

5 relevés/stations
aq<-read.table("S_invaq_rel.txt",h=TRUE)
attach(aq)
summary(aq)
hist(sobsCHOG)

model1<-glm(sobsCHOG~MB,family='poisson')
anova(model1,test='Chisq')
Df Deviance Resid. Df Resid. Dev P(>|Chi|)
NULL 214 516.08
MB 1 12.71 213 503.38 0.0003646
aq<-read.table("S_invaq_rel.txt",h=TRUE)
attach(aq)
summary(aq)
hist(sobsCHOG)

model1<-glm(sobsCHOG~MB,family='poisson')
anova(model1,test='Chisq')
Df Deviance Resid. Df Resid. Dev P(>|Chi|)
NULL 214 516.08
MB 1 12.71 213 503.38 0.0003646

summary(model1)

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.04898 0.03211 63.815 < 2e-16 ***
MBm -0.18576 0.05249 -3.539 0.000401 ***

Ici comme il s’agit d’une variable catégorielle


(Mare ou Bassin) l’Intercept c’est ici la valeur de b
(bassin). R choisi la première suivant l’ordre
alphabétique.
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56

Ici la variable « nom_mare » qui est une catégorie qui regroupe toute les
relevés réalisé dans une même mare apparaît très significative d’autant que
c’est une analyse anova séquentielle !!!!
Et si c’était cette variable qui expliqué tout !
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
Anova(model2,test='F')
SS Df F Pr(>F)
MB 0
nom_mare 378.64 41 12.809 < 2.2e-16 ***
Residuals 124.01 172
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56

rel nom_mare sobsCHOG MB Perimetre vegetation poisson oxy

mBU.MS0t1 mBU.MS0 2 m 390 EL non 0

mBU.MS0t2 mBU.MS0 6 m 390 EL non 0

mBU.MS0t4 mBU.MS0 2 m 390 EL non 0

mBU.MS0t6 mBU.MS0 2 m 390 EL non 0

mBU.MS0t7 mBU.MS0 1 m 390 EL non 0

mCS0t1 mCS0 12 m 50 EL non 3.26666667

mCS0t2 mCS0 9 m 50 EL non 3.26666667

mCS0t3 mCS0 11 m 50 EL non 3.26666667

mCS0t4 mCS0 9 m 50 EL non 3.26666667

mCS0t5 mCS0 12 m 50 EL non 3.26666667

mD2S0t2 mD2S0 9 m 130 HYDRO non 3.06666667

mD2S0t3 mD2S0 11 m 130 HYDRO non 3.06666667


model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56

On va hiérarchiser,
… test manuel
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56

FVALUEalaMain<-(12.71/1)/(378.64/41)
1-pf(FVALUEalaMain,1,41)
[1] 0.2475085
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56
model2<-glm(sobsCHOG~MB+nom_mare,family='poisson')
anova(model2,test='Chisq')

Df Deviance Resid. Df Resid. Dev P(>|Chi|)


NULL 214 516.08
MB 1 12.71 213 503.38 3.646e-04
nom_mare 41 378.64 172 124.74 3.152e-56

On va hiérarchiser, on va
faire un test à la main
H<-(12.71/1)/(378.64/41)
1-pf(H,1,41)
[1] 0.2475085

Ici on obtient la P value


Hiérarchisation, à l’aide des modèles mixtes
Un modèle mixte signifie « qui associe effets fixes et effets
aléatoires »

La variable expliquée (Y) est toujours par définition une variable


aléatoire. Ce n’est pas elle ici qui constitue un effet aléatoire !

Quand les niveaux d’une variable sont fixés a priori, par nature ou par
choix arbitraire, on dit que cette variable est contrôlée. Elle constitue
un effet fixe : il s’agit de nos variables explicatives « classiques » (X1,
X2, X3...etc.) vues précédemment dans les LM, GLM.

Pour qu’une variable est un effet aléatoire


aucune inférence n’est attendue sur celle-ci
ex: un individus sur lequel ont fait plusieurs mesures,
une parcelle avec plusieurs échantillons…

les individus/parcelles constituent un échantillon parmi une


population d’individus/parcelles plus vaste !
Hiérarchisation, à l’aide des modèles mixtes
1. Spécifier les effets fixes et les effets aléatoires
2. Définir la structuration
3. Gaussien ou autre famille ?
Hiérarchisation, à l’aide des modèles mixtes
1. Spécifier les effets fixes et les effets aléatoires
2. Définir la structuration
3. Gaussien ou autre famille ?
Library(nlme) : Modèle linéaire « gaussien »
Library(lme4) : Modèle linéaire généralisé (poisson, binomial)
Hiérarchisation, à l’aide des modèles mixtes

Conditions d’applications :
Les erreurs intra-groupe sont indépendantes et moyenne nulle et variance σ²
Les erreurs intra-groupe sont indépendante de l’effet « aléatoire »
Les effets aléatoires sont distribués normalement
Les effets aléatoires sont indépendants dans chaque groupe
La matrice de covariance de dépend pas du groupe

Vérification graphique :
plot(model)
plot(model, Y~fitted(.))
qqnorm(model,~residuals(.)|effet aléatoire)
Hiérarchisation, à l’aide des modèles mixtes
mod3<-glmer(sobsCHOG~MB+(MB|nom_mare),family='poisson')

Effet aléatoire ici le « nom_mare »


Avec une structuration
Point d’eau (MB)

Relevés (nom_mare)
Hiérarchisation, à l’aide des modèles mixtes
Library(lme4)
mod3<-glmer(sobsCHOG~MB+(MB|nom_mare),family='poisson')
summary(mod3)
Generalized linear mixed model fit by the Laplace approximation
Formula: sobsCHOG ~ MB + (MB | nom_mare)
AIC BIC logLik deviance
280.9 297.8 -135.5 270.9
La P value (P=0.20)
Random effects:
obtenue ici est à
Groups Name Variance Std.Dev. Corr
comparer avec celle
nom_mare (Intercept) 0.24291 0.49286
obtenue avec l’approche
MBm 0.23155 0.48119 -0.243
plus rustique vue
Number of obs: 215, groups: nom_mare, 43
précédemment (P=0.24)
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.9413 0.1046 18.55 <2e-16 ***
MBm -0.2313 0.1821 -1.27 0.204
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘’1

Correlation of Fixed Effects:


(Intr)
MBm -0.575
II. Materials and Methods SHP streetlight

1. Sites selection
1 pair = 1 lit site + 1 unlit site (=control)

lit site Unlit site

 19 pairs with part-night lighting

 14 pairs with full-night lighting


Fig.1. Presentation of the studied area with part-night
lighting schemes and the position of the 33 selected Total of 66 sites
pairs.
II. Materials and Methods
1. Sites selection
Local scale (100m)

Light treatment:
0= Dark sites
1= Part-night lighting sites
2= Full night lighting sites
Landscape scale (2000m)

Fig.2. Proportion of forest and impervious surface at


local and landscape scales around the 66 sites.
II. Materials and Methods
2. Bat monitoring
 2 Acoustic devices SM2 bat

 Simultaneously recording bat echolocating calls for one night / pair

 Same forest edge/hedgerow


 microphones ~ 1,50m ab.
ground
 Mean temperature > 7°C
 low wind, low rain
 moon visibility < 50 %
lit site Unlit site

 Automatic identification of the echolocating calls, and manual check

Software SonoChiro®
II. Materials and Methods
3. Statistical analysis

General Linear Mixed Model with a Poisson error distribution


Response variable Fixed effects
Total number of bat pass/ night
1. Light treatment
P. Pipistrellus 0 = dark, 1= part-night lighting , 2= full night
 Hawking species
2. % of forest
3. % of impervious surface
4. % of open areas (gardens and meadows)
5. Distance to nearest water source
Myotis sp. 6. Mean temperature
©Laurent
 Gleaning species 7. Moon visibility
Arthur

Random effects
1. Pair < 2. commune
model<-glmmPQL(pippip ~ regime_lumière + forest +impervious + open_areas
+ Distance_water + temperature + Moon,
©Laurent
random=~1|commune/paire,
©Laurent
Arthur
Arthur
family=poisson )
II. Preliminary results
2000

20
***
1500

15
Light treatment:
Mean bat passes

0= Dark sites

Mean bat passes


1000

1= Part-night lighting sites

10
2= Full-night lighting sites
***
500

5
0 ***
0

0 1 2 0 1 2

Light treatment
Light treatment

Fig. 3. Mean bat passes per night for P. pipistrellus and Myotis spp. under three different light
treatment.
glmmPQL
>library(MASS)
>model<-glmmPQL(Y ~ X1, random=~1|VarAleatoire, family=poisson)
#avantage : converge assez souvent
#inconvénient : pour la négative binomiale, (family=neg.bin(theta=valeur) il faut
calculer soit même la valeur de theta (fonction theta.ml)

glmer
>library(lme4)
>model<-glmer(Y ~ X1+ (1|VarAleatoire), family=poisson)
#avantage : converge assez souvent, pour faire une negative binomiale fonction
glmer.nb, le theta est alors calculé automatiquement
#inconvenient : souvent « optimiste » sur les P-value, annonce plein de « warning
message »

glmmADMB
>library(glmmADMB)
>model<-glmmadmb(Y ~ X1+ (1|VarAleatoire), family=poisson)
#avantage approche très conservatrice ; calcul lui-même le theta,
family='nbinom1‘ ; l’inflation de zero est implémentée
#inconvénient il faut téléchargé manuellement la library, converge pas toujours !

glmmTMB
>library(glmmTMB)
>model<-glmmTMB(Y ~ X1+ (1|VarAleatoire), family=poisson)
#avantage tous apparemment
Gère les inflations de zéro et permet de faire des « mixture model»
Hiérarchisation, à l’aide des modèles mixtes

Pour plus d’info sur les modèle mixtes :

http://medphar.univ-
poitiers.fr/santepub/Docs%20sources/Staffs%20Sante%20Pu
blique/Archives%20presentation/2009/090527_mixte.pdf

http://group.monolix.org/documents/Cours_MM.pdf

Extending the linear


model with R, generalized
linear, Mixed effect and non
paramétric regression
models Julian J Faraway
Chapman & Hall/CRC 2006

Mixed effects models


extension in Ecology
with R Alain F. Zuur et al.
Springer 2008