Introduction au GLM

Très récemment, dans le cadre d’une prestation d’assistance en biostatistique, j’ai été amené à présenter les GLM (modèles linéaires généralisés ou generalized linear models). La personne avec qui j’ai travaillé n’avait jamais étudié ces modèles à la fac. On lui avait seulement parlé des ANOVA et des régressions linéaires, autrement dit des modèles utilisables lorsque la variable réponse est de type numérique continu (comme une masse, ou une taille, par exemple).

Or, dans ses données, la variable réponse était de type « comptage », il s’agissait d’un nombre d’insectes observés (on parle d’abondance en écologie).

Par le passé, ce type de données était analysé en utilisant des modèles linéaire classiques après transformation logarithmique des comptages. Cette vielle approche, a au moins deux défauts : une puissance statistique diminuée, et une interprétabilité pas toujours évidente (cf l’article de warton et al).

Aujourd’hui, cette approche n’est plus suffisante, et si vous voulez fournir une analyse statistique de qualité, vous devrez passer par l’utilisation des GLM.

Puisque ces modèles sont souvent méconnus des débutants en statistiques, et qu’ils font souvent un peu peur, j’ai eu envie d’essayer d’écrire un article d’introduction, et de montrer qu’en pratique, ils ne sont pas si compliqué que ça!

Rappel sur les modèles linéaires

Avant de parler des GLM, il me semble nécessaire de faire quelques rappels sur les modèles linéaires classiques.

Formulation des modèles linéaires classiques

Les modèles linéaires classiques, sont des modèles mathématiques utilisés pour évaluer les effets de variables prédictives (de type numérique ou catégorielle) sur une variable réponse qui, elle, est obligatoirement de type numérique continue (comme une masse ou une taille par exemple).

La régression linéaire simpleest un modèle linéaire dans lequel une seule variable prédictive est considérée, et celle-ci est de type numérique continue. Pour donner un exemple, une régression linéaire simple peut être employée pour évaluer la relation entre la taille (variable réponse) et le poids (variable prédictive) d’une population donnée (les enfants de 12 ans par exemple).

L’équation de ce modèle linéaire est :

\[ Taille_i = \beta_0 +\beta_1 \;\ast \text{Poids_i}\; + e_{i} \]

i représente l’indice des individus, beta_0 l’ordonnée à l’origine, beta_1 la pente et e_i les erreurs (l’écart entre la taille prédite par beta_0+ beta_1 * poids, et la taille réellement observée). Beta_0 et beta_1 sont des paramètres estimés à partir des données.

De même, une ANOVA à un facteur est un modèle linéaire, qui comporte également une seule variable prédictivemais ici elle est de type catégorielle. Par exemple, une ANOVA peut être employée pour évaluer si les longueures des sépales de trois espèces d’iris sont différentes. Ce modèle spécifie une moyenne par groupe (ici l’espèce), son équation est :

\[y_{ij} = \overline{y_i} + e_{ij} = µ\;+a_i + e_{ij} \]

i est l’indice de l’espèce, j l’indice des individus dans une espèce donnée. y_barre_i est la moyenne des longueurs des sépale pour l’espèce i. µ est alors la moyenne générale (grand mean), alpha_i l’écart entre la moyenne générale et la moyenne de l’espèce i, et eij les erreurs
(l’écart entre la longueur des s »pales d’une fleur et la moyenne de son espèce)

De façon générale, c’est à dire quelle que soit la nature des variables prédictive (numérique ou catégorielle), et leur nombre (une ou plusieurs comme dans le cas de la régression linéaire multiple, par exemple) l’équation du modèle linéaire est :

\[ y_{ij} = \sum_{j=1}^{p}\;\beta_j\;X_{ij} \;+ e_{ij} \]

Cela signifie que les réponses (y_ij) sont prédites par une combinaison linéaire (addition) des variables prédictives (Xj), auxquelles s’ajoutent les erreurs.

Autrement dit, pour chaque y observé, un y moyen est prédit en sommant les effets des variables prédictives. On peut donc écrire :

\[ µ_y = \sum_{j=1}^{p}\;\beta_j\;X_{ij} \]

Remarque : Cette dernière formulation est importante pour comprendre les GLM.

Les hypothèses du modèle linéaire

Les modèles linéaires sont sous-tendus par trois hypothèses, c’est à dire que leurs résultats, notamment en termes de p-value, sont valides si :
  • les résidus sont indépendants,
  • les résidus suivent une loi normale de moyenne nulle et de variance résiduelle,
  • les résidus sont homogènes.
L’indépendance des résidus est généralement évaluée par le plan expérimentale, mais elle peut également être validée par l’emploi d’un test statistiques. Les hypothèses de normalité et d’homogénéité sont généralement évaluées de façon visuelle et/ ou en employant des tests statistiques.Pour plus de détail sur ces trois hypothèses, vous pouvez consulter cet article.

En résumé

Pour résumer, les modèles linéaires :

  1. s’utilisent uniquement lorsque la variable réponse est de type numérique continue
  2. spécifient que les réponses sont prédites par une combinaison linéaire (addition) des variables prédictives, auxquelles s’ajoutent les erreurs
  3. sont sous-tendus par les hypothèses d’indépendance, de normalité et d’homogénéité des résidus.

Remarque : les résidus sont les estimations des erreurs.

Et les GLM alors ?

Les GLM sont une extension des modèles linéaires classiques qui peuvent être utilisés lorsque les réponses ne sont pas de type numérique continues.

Quand utiliser un GLM ?

Les GLM sont principalement utilisés dans deux situations :

  1. Lorsque les données sont de type comptage (nombre d’oeufs pondus, nombre de larve présentes etc..),
  2. Lorsque les données sont de type binaire (Malade/non malade ou mort/vivant)

Lorsque les réponses sont de type comptage

Les réponses de type comptage sont bornées en 0 et ne comportent que des valeurs entières positives. Elle suivent théoriquement une distribution de Poisson de paramètre Lambda.

De plus, par définition la variance de réponses distribuées selon une loi de Poisson n’est pas constante, mais égale à la moyenne, elle-même égale au paramètre Lambda (c’est la théorie qui le dit). Cela est aussi vrai pour les résidus. Cela signifie que, en théorie, la variance des résidus augmente, de façon proportionnelle, avec les valeurs de réponses prédites (fitted). Ceci va à l’encontre de l’hypothèse d’homogénéité des modèles linéaires classiques.

Lorsqu’un GLM est utilisé pour analyser des données de comptage, cette approche est parfois nommée « régression de Poisson » (même si la ou les variables prédictives sont catégorielles et que le modèle s’apparente à une ANOVA)

Lorsque les réponses sont de type catégoriel binaire

Lorsque les données sont catégorielles binaires, il est encore plus évident que les erreurs ne peuvent pas suivre une loi normale de moyenne nulle et de variance constante, puisque la réponse est « oui » ou « non ». Ce type de données suit une distribution Binomiale, de paramètres « n » et p ». Comme nous le verrons plus loin, dans ce cas, une transformation (de la réponse) va permettre de passer du « oui » / « non » à une probabilité d’être « oui ».

Lorsqu’un GLM est employé pour analyser des réponses catégorielles binaires, on parle de régression logistique.

Remarque : les glm peuvent également être employés lorsque les réponses sont des proportions.

Comment ça marche les GLM ?

Les modèles linéaires généralisés reposent sur 3 éléments:

  1. Un prédicteur linéaire
  2. Une fonction de lien
  3. Une structure des erreurs

Le prédicteur linéaire

« prédicteur linéaire« , c’est un terme un peu complexe pour dire, que comme dans les modèles linéaires classiques, les réponses prédites par les modèles vont l’être à partir d’une combinaison linéaire des variables prédictives. On nomme généralement ce prédicteur linéaire par la lettre ƞ (eta):[lambda] \eta \; = \sum_{j=1}^{p} \beta_j\;X_{ij} [/lambda]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

La fonction de lien

La fonction de lien c’est l’étape un peu délicate des GLM ! Contrairement aux modèles linéaires classiques, les valeurs prédites par le prédicteur linéaire ne correspondent pas à la prédiction moyenne d’une observation, mais à la transformation (par une fonction mathématique) de celle-ci.En pratique, cela signifie que les valeurs du prédicteur linéaire sont obtenues en transformant préalablement les valeurs observées par la fonction de lien. Autrement dit, les beta sont estimés après transformation des réponses selon la fonction de lien choisie.Le prédicteur linéaire et la fonction de lien sont ainsi liés par cette équation :\[g(µ_y) =\sum_{j=1}^{p} \beta_j\;X_{ij} \]Qui peut également s’écrire :\[g(µ_y) = \eta \]Par exemple, pour les données de comptage, on n’a plus :\[µ_y =\sum_{j=1}^{p} \beta_j\;X_{ij}\]mais :\[log(µ_y) =\sum_{j=1}^{p} \beta_j\;X_{ij}\]Pour obtenir la prédiction moyenne, il est nécessaire d’appliquer la fonction de lien inverse :\[ µ_y = g^{-1} \; (\eta)\]Toujours avec les données de comptage, cela correspond à la fonction exponentielle, d’où l’équation suivante :\[µ_y = e^{\sum_{j=1}^{p} \beta_j\;X_{ij}} \]Le but de la fonction de lien est de contraindre les valeurs prédites à être dans l’échelle des valeurs observées. Ainsi, dans le cas des données de comptage, qui sont obligatoirement positives, ou nulles, la fonction de lien log contraint les valeurs prédites par le prédicteur linéaire à devenir également positives ou nulles après l’emploi de la fonction inverse du log, c’est à dire la fonction exponentielle.Remarque : lorsque les réponses sont catégorielles binaires (oui / non) la fonction de lien est la fonction logit :\[log(\frac{p}{1-p}) = \sum_{j=1}^{p} \beta_j\;X_{ij}\]p est la probabilité que « y=oui ».Si la fonction de lien est encore un concept un peu obscure, ne vous inquiétez pas. Retenez simplement que dans les GLM, les données sont d’abord transformées et que cette transformation permet ensuite aux prédictions d’avoir des contraintes identiques aux réponses observées (par exemple, d’être toujours positives ou nulles), autrement dit de fournir des prédictions cohérentes !

La structure d'erreur

A une fonction de lien donnée, correspond généralement une structure d’erreur particulière.Il s’agit d’une famille de distribution des erreurs. Par exemple, pour les données de comptage, la fonction de lien est le log et la structure d’erreur correspondante est la distribution de Poisson.

Cette structure d’erreur, permet notamment de spécifier correctement la relation entre la moyenne et la variance. Cette relation est utilisée par l’approche de maximum de vraisemblance pour estimer les coefficients des paramètres (les beta) du GLM.

Ici un tableau récapitulatif des structures d’erreur, fonctions de lien, fonctions de moyennes et fonctions de variance des données de type numériques continues non bornée, de comptage et binaire.

Remarque : un GLM avec une structure d’erreur gaussienne et une fonction de lien « identité », correspond à un modèle linéaire classique.

Maximum de vraisemblance et déviance

Les coefficients des paramètres d’un GLM sont estimés par la méthode du maximum de vraisemblance, qui fait appelle à la notion de déviance. La déviance est en quelque sorte une généralisation de la variance.

Pour plus de détail, je vous recommande le chapitre  » Deviance : Measuring the goodness of fit of a GLM » (p516) du Rbook version2.

GLM avec R

Pour utiliser un GLM avec R, il suffit d’employer la fonction glm() du package stats qui est chargé par défaut, à chaque ouverture de session R. Cette fonction s’utilise globalement comme la fonction lm(), excepté qu’elle dispose en plus de l’argument « family » qui permet de spécifier à la fois la fonction de lien et la structure d’erreur désirée.

Les options disponibles de l’argument family sont :

GLM avec R

Un exemple avec des données de comptage, et une analyse de type ANOVA à un facteur :

 ## counts treatment

    ## 1     18        T1
    ## 2     17        T1
    ## 3     15        T1
    ## 4     16        T2
    ## 5     13        T2
    ## 6     12        T2
    ## 7     17        T3
    ## 8      4        T3
    ## 9      8        T3 

Conclusion

counts_glm <- glm(counts~treatment, data=counts_df, family=poisson) 

summary(counts_glm) 
    ## 
    ## Call: 
    ## glm(formula = counts ~ treatment, family = poisson, data = counts_df) 
    ## 
    ## Deviance Residuals: 
    ## Min 1Q Median 3Q Max ## -2.0674 -0.4605 -0.1818 0.3224 2.1278 
    ## 
    ## Coefficients: ## Estimate Std. Error z value Pr(>|z|)    
    ## (Intercept)   2.8134     0.1414  19.894   <2e-16 ***
    ## treatmentT2  -0.1985     0.2107  -0.942   0.3462    
    ## treatmentT3  -0.5447     0.2334  -2.334   0.0196 *  
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ## 
    ## (Dispersion parameter for poisson family taken to be 1)
    ## 
    ##     Null deviance: 15.700  on 8  degrees of freedom
    ## Residual deviance: 10.013  on 6  degrees of freedom
    ## AIC: 55.246
    ## 
    ## Number of Fisher Scoring iterations: 5 

Si la théorie des GLM vous échappe encore un peu, de mon point de vu, ce n’est pas très gênant. Ce qui est important de retenir c’est que lorsque les données observées sont de type « comptage » ou de type « binaire », et bien il faut utiliser un GLM et pas un modèle linéaire classique. Vous pouvez aussi retenir que les GLM permettent d’évaluer les effets d’une ou plusieurs variables prédictives, de type numérique continue ou de type catégoriel, sur des réponses de type comptage, de type binaire ou encore des proportions.

Cet article avait seulement pour but d’introduire les GLM. J’aborderai les régressions de Poisson et logistique, en détail, dans de prochains articles « Tutoriel ».

Pour celles et ceux qui voudraient dores et déjà en savoir plus, je vous recommande les chapitres dédiés aux GLM du « R book » et du livre « R in action« . Je vous recommande aussi ce document en français, rédigé par Jonathan Lenoir, qui m’a aidé à écrire cet article :

Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee 🙏

Crédits photos : Geralt

Continuez votre lecture

18 Responses

  1. Bonsoir,

    Article au top merci à vous et merci pour les fiches de révisions à dispo gratuitement !
    Est-ce qu’un article sur : les modèles linéaires généralisés à effets mixtes glmer() pourrait être fait ?

  2. Bonjour Claire et merci
    J’ai juste un doute sur l’indice dans une formule (partie 1.1 Formulation des modèles linéaires classiques) juste avant « Remarque : Cette dernière formulation est importante pour comprendre les GLM. »: ce n’est pas mu indice i qu’il faudrait lire à la place de mu indice y ? (dans un cas je comprends la formule dans l’autre … pas !)
    Bien cordialement

    1. Bonjour,

      D’après ma compréhension, c’est bien mu indice y, ça représente la réponse prédite (donc y) moyenne (le mu).

  3. Bonjour,

    Merci beaucoup pour votre super article! J’ai pour ma part un souci avec l’analyse des résultats obtenus… Est-ce qu’avec l’exemple que vous avez donné, il est possible de tirer une conclusion sur l’efficacité des traitement? Peut-on conclure que les traitements 1 et 3 donnent un résultat significativement différent? est-ce possible de faire un test post-hoc par après (classification des moyennes)?

  4. Bonjour,

    Merci beaucoup pour cette introduction au GLM très claire et rassurante !

    Les fiches sont un bonheur, pour quelqu’un qui a du mal avec les statistiques c’est une mine d’or.

  5. Un million de fois merci pour cet article, et pour tous les autres. Je me suis mis à R récemment et je suis tombé par hasard sur votre Blog. Quelle chance ! Au delà de l’utilisation de R, c’est un vrai bonheur de d’avoir des articles statistiques aussi clairs, qui plus est en français. J’aurais aimé que mes cours de stats soient aussi accessibles. En attendant, je reprend du plaisir à travailler les stats, il n’est jamais trop tard pour une réconciliation ! Je me délecte à l’avance des prochaines heures de lectures et de travail sur R. Encore: Merci !!

    1. Bonjour,

      Les valeurs z dans les résultats d’un modèle linéaire généralisé (GLM) jouent un rôle similaire à celui des valeurs t dans les modèles de régression linéaire classiques. Voici quelques points clés pour comprendre ces valeurs z :

      Mesure de Significativité : La valeur z est une mesure statistique qui indique la distance entre la valeur estimée d’un coefficient et sa valeur hypothétique (souvent zéro) en termes d’erreurs standard. Une valeur z élevée (en valeur absolue) suggère que le coefficient est significativement différent de la valeur hypothétique.

      Calcul : La valeur z est calculée en divisant l’estimation du coefficient par son erreur standard. Mathématiquement, cela se formule comme :

      z= Estimation du Coefficient / Erreur Standard

      Hypothèse Nulle : La valeur z est utilisée pour tester l’hypothèse nulle que le coefficient est égal à zéro (c’est-à-dire, pas d’effet). Si la valeur z est grande en valeur absolue, cela signifie qu’il est peu probable que le coefficient soit zéro, et donc, que la variable correspondante a un effet significatif sur la variable dépendante.

      P-valeur : La valeur z est associée à une p-valeur, qui est la probabilité d’observer une valeur aussi extrême que la valeur z observée si l’hypothèse nulle est vraie. Une petite p-valeur (généralement inférieure à 0,05) indique que l’effet est statistiquement significatif.

      Bonne continuation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aide mémoire off'R ;)

Enregistrez vous pour recevoir gratuitement mes fiches « aide mémoire » (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.