Analyse statistique avancée
Module 2 : Modèles linéaires généralisés
Mugumaarhahama Yannick, Ph.D
Université Evangélique en Afrique
Faculté des Sciences Agronomiques et Environnement
M1 PA - PV - TA - GSEA
Juillet 2025
1 / 56
Introduction aux GLM
Limites du modèle linéaire classique :
• Variable réponse non quantitative, non continue, non normalement
distribuée
• Variance non constante (comptage, proportions, survie, etc.)
Les GLM élargissent le cadre du modèle linéaire :
• Permettent de modéliser une grande diversité de types de données
• Relient la moyenne de la variable réponse à une combinaison linéaire
de prédicteurs, via une fonction de lien adaptée
2 / 56
Formulation mathématique générale d’un GLM
Trois composants fondamentaux :
1. Composante aléatoire : yi ∼ loi exponentielle (ex : binomiale,
Poisson, Gamma. . . )
Pp
2. Composante systématique : ηi = β0 + j=1 βj xij
3. Fonction de lien : g (µi ) = ηi où µi = E[yi ]
Le choix de la loi et de la fonction de lien dépend de la nature de la
variable réponse.
3 / 56
Exemples de lois et de liens pour les GLM
• Régression logistique (binaire) : loi binomiale, lien logit
• Régression de Poisson (comptage) : loi de Poisson, lien
logarithmique
• Régression Gamma (valeurs strictement positives) : loi Gamma,
lien inverse ou log
Chaque combinaison loi/lien a des propriétés et interprétations spécifiques.
4 / 56
Estimation et inférence dans les GLM
• Estimation des coefficients par maximisation de la vraisemblance
(pas de solution analytique, méthode numérique)
• Tests de significativité (Wald, rapport de vraisemblance)
• Interprétation des coefficients dépend du lien choisi (logit, log, etc.)
5 / 56
Hypothèses des GLM
• Observations indépendantes
• La loi de la variable réponse appartient à la famille exponentielle
• Fonction de lien adaptée au phénomène
• Variables explicatives correctement spécifiées
Des diagnostics graphiques et numériques sont nécessaires après
ajustement.
6 / 56
Régression logistique binaire
7 / 56
Problématique et applications de la régression logistique
Quand utiliser la régression logistique binaire ?
• Variable réponse yi binaire (succès/échec, présence/absence, etc.)
• Prédire une probabilité en fonction de plusieurs facteurs
Applications en agronomie :
• Probabilité de survie d’une plante selon traitement
• Présence/absence d’une maladie en fonction des conditions
8 / 56
Formulation mathématique de la régression logistique
P(yi = 1|xi1 , ..., xip ) = πi
πi
log = β0 + β1 xi1 + · · · + βp xip
1 − πi
Où :
• πi : probabilité que yi = 1
• xij : variables explicatives
• βj : coefficients à estimer
La fonction de lien “logit” relie la probabilité à la combinaison linéaire des
prédicteurs.
9 / 56
Interprétation des coefficients logistiques
• Chaque βj représente l’effet log-linéaire de xj sur le rapport de cotes
(“odds”)
• e βj : odds ratio, i.e. variation relative du rapport de cotes par unité
supplémentaire de xj
Attention : il s’agit d’effets multiplicatifs sur les odds, non directement sur
la probabilité.
10 / 56
Estimation et fonction de vraisemblance
On maximise la vraisemblance :
n
Y
L(β) = πiyi (1 − πi )1−yi
i=1
La solution est numérique (algorithme de Newton-Raphson).
Statistiques associées :
• Estimés β̂j , erreurs-types, tests de Wald, p-valeurs
• Tests globaux : rapport de vraisemblance, R 2 de McFadden, AIC/BIC
11 / 56
Implémentation en R : Régression logistique binaire
Code R
mod_log <- glm(y ~ x1 + x2, data = donnees, family = binomial)
summary(mod_log)
exp(coef(mod_log)) # Odds-ratios
Commentaires :
• family = binomial : modèle logistique binaire
• exp(coef()) donne les odds-ratios pour l’interprétation
12 / 56
Hypothèses et diagnostics pour la logistique
• Indépendance des observations
• Linéarité du logit vis-à-vis des prédicteurs quantitatifs
• Absence de colinéarité forte
• Absence d’outliers influents
Diagnostic :
• Analyse des résidus (Pearson, déviance)
• Graphiques prédictions observées/prévues
• Tests d’ajustement global (Hosmer-Lemeshow)
13 / 56
Analyse des résidus de la logistique sous R
Code R
# R^^c3^^a9sidus de Pearson
resid_pearson <- residuals(mod_log, type="pearson")
# R^^c3^^a9sidus de d^^c3^^a9viance
resid_dev <- residuals(mod_log, type="deviance")
# Influence (valeurs de Cook)
[Link](mod_log)
Commentaires :
• Les résidus doivent être centrés, non structurés, sans valeurs extrêmes
• Un graphique des résidus vs valeurs ajustées révèle d’éventuelles
non-linéarités
14 / 56
Mesures de l’ajustement global
Code R
# Test de Hosmer-Lemeshow
library(ResourceSelection)
[Link](donnees$y, fitted(mod_log))
# R2 de McFadden
library(pscl)
pR2(mod_log)
Commentaires :
• Hosmer-Lemeshow : p > 0,05 → bon ajustement global
• R 2 de McFadden : proche de 1 → modèle explicatif performant
15 / 56
Validation croisée et ROC
Validation croisée :
• Évaluer la stabilité/précision hors échantillon
• Courbe ROC (sensibilité/spécificité)
En agronomie, l’erreur de classification réelle est cruciale pour les
applications pratiques.
16 / 56
Courbe ROC et AUC sous R
Code R
library(pROC)
roc_obj <- roc(donnees$y, fitted(mod_log))
plot(roc_obj)
auc(roc_obj)
Commentaires :
• La courbe ROC visualise la performance globale du modèle
• L’AUC (Area Under Curve) : 1 = parfait, 0,5 = aléatoire
17 / 56
Régression logistique pénalisée
18 / 56
Motivation pour la pénalisation (logistique pénalisée)
Problème : grands jeux de variables, multicolinéarité, sur-ajustement
Solution : pénaliser la vraisemblance par une fonction de pénalité (Lasso,
Ridge, Elastic Net) On applique la même philosophie que pour les modèles
linéaires.
19 / 56
Logistique pénalisée avec glmnet sous R
Code R
library(glmnet)
x <- [Link](y ~ ., data = donnees)[,-1]
y <- donnees$y
logit_lasso <- glmnet(x, y, family = "binomial", alpha = 1)
cv_logit <- [Link](x, y, family = "binomial", alpha = 1)
coef(cv_logit, s = "[Link]")
Commentaires :
• Lasso (α = 1) sélectionne les variables explicatives pertinentes
• Le choix de λ via la validation croisée
20 / 56
Régression logistique ordinale
21 / 56
Quand utiliser la logistique ordinale ?
Situation : variable réponse qualitative ordonnée (ex : faible/moyen/fort)
Applications :
• Niveau de gravité d’une maladie (léger/modéré/sévère)
• Degré d’acceptabilité d’un produit (non/pas trop/accepté)
La logistique ordinale modèle la probabilité cumulative d’atteindre au moins
chaque modalité.
22 / 56
Formulation mathématique de la logistique ordinale
Pour J modalités ordonnées (1 < 2 < ... < J) :
P(yi ≤ j)
log = θj − β1 xi1 − · · · − βp xip
P(yi > j)
Où :
• θj : seuil pour la modalité j
• Les βj sont constants (hypothèse de proportionnalité)
23 / 56
Hypothèses, diagnostics, test de Brant
Hypothèse clé : l’effet des prédicteurs est le même pour tous les seuils
(proportional odds) Diagnostic : test de Brant (vérifie la proportionnalité
des effets) Si l’hypothèse n’est pas vérifiée, envisager un modèle
partiellement proportionnel.
24 / 56
Implémentation de la logistique ordinale sous R
Code R
library(MASS)
mod_ord <- polr(gravite ~ x1 + x2, data = donnees, Hess=TRUE)
summary(mod_ord)
library(brant)
brant(mod_ord)
Commentaires :
• polr() ajuste le modèle logistique ordinale
• brant() teste la validité de l’hypothèse de proportionnalité
25 / 56
Régression logistique multinomiale
26 / 56
Quand utiliser la logistique multinomiale ?
Situation : variable réponse qualitative non ordonnée (>2 modalités)
• Type de maladie, type de culture, classes de sol
Modélise la probabilité d’appartenir à chaque catégorie en fonction
des prédicteurs
27 / 56
Formulation du modèle multinomial
Pour K classes (k = 1, . . . , K ) :
P(yi = k)
log = β0k + β1k xi1 + · · · + βpk xip
P(yi = K )
Une équation pour chaque classe (référence : classe K ).
28 / 56
Implémentation en R : Logistique multinomiale
Code R
library(nnet)
mod_multinom <- multinom(type ~ x1 + x2, data = donnees)
summary(mod_multinom)
Commentaires :
• multinom() ajuste le modèle
• Interprétation des coefficients : effet relatif sur les log-odds de chaque
catégorie vs la référence
29 / 56
Résumé visuel à insérer (suggestion)
Ici, une figure comparative des liens (logit, probit, log), et des distributions
associées (binomiale, Poisson, Gamma) clarifierait la diversité des GLM.
30 / 56
Régression de Poisson (comptage)
31 / 56
Quand utiliser la régression de Poisson ?
Contexte : Variable réponse = nombre d’occurrences d’un événement
(valeurs entières, positives, souvent rares ou asymétriques).
• Nombre de parasites par plante, de semences germées par pot, etc.
• Variance souvent proche de la moyenne.
Hypothèses :
• Observations indépendantes
• Égalité moyenne-variance : E[Y ] = Var(Y )
32 / 56
Formulation mathématique du modèle de Poisson
Yi ∼ Poisson(λi )
log(λi ) = β0 + β1 xi1 + · · · + βp xip
Où :
• λi : moyenne (et variance) attendue pour l’observation i
• xij : variables explicatives
• βj : coefficients à estimer
Lien log : garantit λi > 0 quel que soit xij
33 / 56
Interprétation des coefficients de la Poisson
• e βj = taux relatif : facteur multiplicatif attendu sur le taux
d’occurrence pour une unité de xj
• Exemple : e 0.4 ≈ 1.49 → chaque unité supplémentaire de xj multiplie
le taux d’événements par 1,49
34 / 56
Ajustement d’un modèle de Poisson sous R
Code R
mod_pois <- glm(y ~ x1 + x2, data = donnees, family = poisson)
summary(mod_pois)
exp(coef(mod_pois)) # Interpr^^c3^^a9tation en taux relatifs
Commentaires :
• family = poisson : modèle de Poisson classique
• exp(coef()) : taux relatifs
35 / 56
Diagnostic du modèle de Poisson : surdispersion
Test de surdispersion : variance observée > moyenne (fréquent en
pratique). Conséquences : erreurs-types sous-estimées, risque de faux
positifs. Ratio de dispersion :
Pn
(yi − λ̂i )2 /λ̂i
Ratio = i=1
n−p
• Ratio ≈ 1 : Poisson adapté
• Ratio > 1 : surdispersion → préférer quasi-Poisson ou binomial négatif
36 / 56
Calcul du ratio de dispersion sous R
Code R
mod_pois <- glm(comptage ~ x1 + x2, family = poisson, data = don
ratio <- sum(residuals(mod_pois, type="pearson")^2) / mod_pois$d
ratio
Commentaires :
• Si ratio >> 1, le modèle Poisson n’est pas adapté (voir modèles
suivants)
37 / 56
Régression quasi-Poisson
38 / 56
Pourquoi le modèle quasi-Poisson ?
Motivation : Surdispersion détectée (Var(Y ) > E[Y ])
• Modèle identique au Poisson pour la moyenne, mais variance ajustée :
Var(Y ) = ϕλ
• ϕ = paramètre de dispersion estimé à partir des résidus
Avantages : erreurs-types corrigées, tests valides même en cas de
surdispersion légère ou modérée.
39 / 56
Ajustement sous R : quasi-Poisson
Code R
mod_qp <- glm(y ~ x1 + x2, data = donnees, family = quasipoisson
summary(mod_qp)
Commentaires :
• Coefficients et valeurs ajustées identiques au Poisson
• Les intervalles de confiance et p-valeurs tiennent compte de la
surdispersion
40 / 56
Régression binomiale négative
41 / 56
Pourquoi le modèle binomial négatif ?
Contexte : Surdispersion marquée, structure de variance quadratique
2
• Var(Y ) = µ + µθ
• Prend mieux en compte une variance beaucoup plus grande que la
moyenne
• Très utilisé en agronomie pour modéliser des comptages hétérogènes
ou regroupés
42 / 56
Ajustement sous R : binomial négatif
Code R
library(MASS)
mod_nb <- [Link](y ~ x1 + x2, data = donnees)
summary(mod_nb)
exp(coef(mod_nb))
Commentaires :
• [Link]() ajuste la variance de manière flexible
• L’interprétation des coefficients est la même que pour
Poisson/quasi-Poisson (taux relatifs)
43 / 56
Diagnostic et comparaison des modèles de comptage
• Comparer le ratio de dispersion (Poisson, quasi-Poisson, NB)
• AIC (Poisson et NB) pour comparer l’ajustement (non valable pour
quasi-Poisson)
• Diagnostic des résidus, identification des outliers
Conseil : Toujours vérifier les distributions des résidus et la pertinence du
modèle pour l’application agronomique ciblée.
44 / 56
Modèles à inflation de zéros (ZIP, ZINB)
45 / 56
Quand utiliser un modèle à inflation de zéros ?
Problème : Excès de zéros dans les données (plus qu’attendu sous Poisson
ou NB)
• Deux sources de zéros : structurels (“jamais” de l’événement) et
aléatoires
• Fréquent dans les comptages environnementaux ou d’expériences en
agronomie
46 / 56
Formulation d’un modèle ZIP (Zero-Inflated Poisson)
P(Yi = 0) = pi + (1 − pi ) · e −λi
λyi e −λi
P(Yi = y ) = (1 − pi ) · , y >0
y!
Où :
• pi : probabilité d’être “zéro structurel” (modélisé par une régression
logistique)
• λi : moyenne du processus de comptage (modélisé par une régression
de Poisson)
47 / 56
Ajustement sous R : modèles ZIP et ZINB
Code R
library(pscl)
mod_zip <- zeroinfl(y ~ x1 + x2 | z1 + z2, data = donnees, dist
mod_zinb <- zeroinfl(y ~ x1 + x2 | z1 + z2, data = donnees, dist
summary(mod_zip)
summary(mod_zinb)
Commentaires :
• Avant le | : prédicteurs du processus de comptage
• Après le | : prédicteurs du processus générant des zéros structurels
• Interprétation distincte des deux sous-modèles
48 / 56
Diagnostics pour modèles à inflation de zéros
• Comparer AIC/BIC et log-vraisemblance avec modèles “classiques”
• Visualiser la distribution des zéros prédits vs observés
• Test de Vuong (comparaison ZIP vs Poisson, ou ZINB vs NB)
• Bien justifier la pertinence agronomique d’un tel modèle
49 / 56
Régression Gamma
50 / 56
Quand utiliser la régression Gamma ?
Variable réponse : Strictement positive, continue, souvent très
asymétrique
• Poids des fruits, biomasse, durée d’un processus, concentration, etc.
• Variance qui augmente avec la moyenne (Var(Y ) = ϕµ2 )
51 / 56
Formulation mathématique de la régression Gamma
Yi ∼ Gamma(µi , ϕ)
g (µi ) = β0 + β1 xi1 + · · · + βp xip
Lien log conseillé :
log(µi ) = β0 + · · ·
Où :
• µi : moyenne attendue
• ϕ : paramètre de dispersion (précision)
52 / 56
Interprétation des coefficients dans la Gamma
• e βj : facteur multiplicatif appliqué à la moyenne pour chaque unité
supplémentaire de xj
• Ex : e 0.1 ≈ 1.11 → 11
53 / 56
Ajustement sous R : régression Gamma
Code R
mod_gamma <- glm(y ~ x1 + x2, data = donnees, family = Gamma(lin
summary(mod_gamma)
exp(coef(mod_gamma))
Diagnostics complémentaires :
• Analyse des résidus (Pearson, déviance)
• Graphique résidus vs valeurs ajustées
• Comparaison de modèles via AIC
54 / 56
Résumé : Bonnes pratiques et pièges à éviter
Toujours :
• Vérifier la distribution réelle des données avant de choisir le modèle
• Diagnostiquer la dispersion (sous/sur)
• Interpréter les coefficients sur l’échelle du lien choisi
• Illustrer par des exemples concrets tirés de l’agronomie
• Justifier chaque choix de modèle (exigence de la revue scientifique)
À éviter :
• Appliquer un modèle Poisson en cas de surdispersion manifeste
• Négliger les diagnostics ou les graphiques de résidus
• Oublier la signification pratique (application terrain)
55 / 56
Exemple synthétique agronomique pour tous les modèles
Situation : On cherche à modéliser le nombre de gousses de soja par
plante en fonction de la dose d’engrais et de la densité de semis.
• Poisson : adapté si variance ≈ moyenne, peu de zéros inattendus.
• Quasi-Poisson : si surdispersion modérée.
• Binomial négatif : si variance >> moyenne, hétérogénéité forte.
• ZIP/ZINB : si excès de plantes sans gousses (zéros “structurels”).
• Gamma : si on modélise le poids total des gousses (variable continue,
positive, asymétrique).
Le choix final dépend du diagnostic statistique et de la connaissance du
terrain.
56 / 56