Régression linéaire simple : quand les hypothèses ne sont pas satisfaites

Pour faire suite au précédent post sur la régression linéaire simple  dans cet article, je vais vous parler des alternatives possibles à cette méthode, lorsqu’une, ou plusieurs de ses hypothèses de validité, ne sont pas satisfaites.

Pour rappel, la régression linéaire simple est une méthode statistique très classique qui est employée pour évaluer si deux variables numériques continues sont significativement liées, en faisant l’hypothèse que la forme de leur relation est linéaire.

La régression linéaire simple permet d’estimer les paramètres de la droite liant la variable réponse à la variable prédictive, mais elle permet également d’évaluer si cette relation est significative ou non. Pour cela, un test T est employé pour évaluer si la pente est significativement différente de 0 ou non. Cependant, le résultat de ce test T n’est valide que si les quatre hypothèses suivantes sont satisfaites :

1. La relation entre les deux variables numériques continues est réellement de forme linéaire (au moins grossièrement).
2. Les résidus de la régression linéaire sont indépendants.
3. Les résidus de la régression linéaire sont distribués selon une loi Normale de moyenne 0 (au moins grossièrement).
4. Les résidus de la régression linéaire sont distribués de façon homogène.

Comme décrit dans le premier article (faire un lien), la linéarité peut être évaluée graphiquement grâce à la fonction “scatterplot” du package car. L’hypothèse d’indépendance, quand à elle, peut être jugée par un “lag plot”, ainsi qu’en employant le test de Durbin-Watson. L’hypothèse de normalité peut être appréciée par la réalisation d’un “QQplot”, couplé à un test de Shapiro-Wilk. Enfin, l’hypothèse d’homogénéité des résidus peut être testée par la réalisation d’un “residuals vs fitted plot“, complété par un test de Breush-Pagan.

J’associe très souvent une méthode d’évaluation visuelle avec la réalisation d’un test statistique pour évaluer ces hypothèses, car les deux sont informatifs. Le seuil de significativité, généralement fixé à 0.05, ne doit pas être appliqué strictement, car certains tests, comme celui de Shapiro-Wilk par exemple, sont peu robustes, ou sensibles aux outliers. La p-value du test statistique doit plutôt être envisagée comme un garde fou. De l’autre coté, les évaluations visuelles apportent une impression générale, globale, qui doit également être prise en
considération.

Quand on a beaucoup d’expérience, on peut se baser uniquement sur les représentations visuelles pour évaluer les différentes hypothèses, mais lorsqu’on débute, je sais qu’il est très difficile de différencier un écart acceptable d’un écart trop important. C’est aussi pour acquérir de l’expérience que je vous conseille de faire cette double évaluation (visuelle et par les tests statistiques) des hypothèses.

Et au final, est ce que c’est grave lorsque les hypothèses ne sont pas satisfaites ? Est ce que cela à un impact sur les résultats ? De mon point de vu, il est très difficile de répondre à cette question, car elle dépend de l’hypothèse concernée, de l’amplitude de l’écart, et enfin du nombre de données.

Sans que je puisse apporter de références pour cela, je dirai qu’un léger défaut de linéarité n’est pas très important, que la non indépendance des résidus est rédhibitoire. De même un défaut de normalité est moins grave qu’un défaut d’homogénéité.

 

Table des matières

  1. Quand l’ hypothèse de linéarité n’est pas satisfaite
  2. Quand l’hypothèse d’indépendance des résidus n’est pas satisfaite
  3. Quand la normalité n’est pas satisfaite
  4. Quand l’homogénéité n’est pas satisfaite
  5. Pour aller plus loin
  6. Conclusion

1. Quand l’ hypothèse de linéarité n’est pas satisfaite :

Comme expliqué précédemment, l’hypothèse de linéarité peut s’évaluer à l’aide de la fonction “scatterplot” du package “car”.

Pour reprendre l’exemple de l’article précédent :

régression linéaire simple

 

Ici l’hypothèse de linéarité est satisfaite.

 

régression linéaire

Là, en revanche, elle est plus problématique. Dans le cas d’un défaut de linéarité, il existe deux alternatives : abandonner la linéarité, ou essayer de l’améliorer.

1.1 Abandonner la linéarité et utiliser la corrélation de Spearman

La première solution consiste à abandonner la relation linéaire, et à se satisfaire d’une relation monotone entre les deux variables numériques continues. Et par conséquent, d’utiliser un test de corrélation de Spearman pour évaluer s’il existe une dépendance monotone entre les deux variables. Pour cela on utilise la fonction “cor.test” en employant l’option “spearman” dans l’argument “method”.

 

L’avantage de la corrélation de Spearman est qu’elle ne requiert que l’indépendance des données.

Ainsi, soit le protocole expérimental est connu et l’indépendance des données peut être établi, soit le protocole n’est pas connu et dans ce cas là, il est préférable de vérifier cette hypothèse. Le plus simple est alors d’ajuster le modèle linéaire simple et d’évaluer l’auto-corrélation des résidus par un “lag plot” avec la fonction “acf” du package “car” (voir plus bas).

1.2 Améliorer la linéarité en utilisant une transformation

La deuxième solution consiste à utiliser une transformation de la variable prédictive afin d’améliorer la linéarité. Puis d’utiliser cette variable prédictive transformée lors de la modélisation. Les autres hypothèses doivent ensuite être évaluées.

A mon sens, cette alternative ne doit être envisagée que lorsque l’évaluation du lien linéaire est indispensable.

Les principales transformations utilisées sont le log et la racine carrée. Ces transformations ont également tendance à améliorer la normalité et l’homogénéité des résidus. En pratique la fonction “log10” (logarithme en base 10) ou la fonction “log” (logarithme néperien) peuvent être employées. Néanmoins, je vous conseille d’utiliser la fonction “log1p” qui applique la transformation log(1+x). Cela vous évitera d’aboutir à des valeurs négatives lorsque la valeur de x est proche de 0. (log1p(0.007) = 0.007 alors que log(0.07)=-4.96) Ceci n’est pas forcément embêtant ici, mais peut l’être lorsque la transformation log est appliquée sur une variable réponse.

 

régression linéaire

Pour la racine carrée, il suffit d’utiliser la fonction “sqrt”.

 

Ici, la transformation par la racine carrée fonctionne bien.

Dans un second temps, on réalise la régression linéaire avec cette transformation.

 

2. Quand l’hypothèse d’indépendance des résidus n’est pas satisfaite :

Comme évoqué plus haut, l’indépendance des résidus peut s’évaluer avec un “lag plot” sur les résidus du modèle de régression linéaire. On peut également utiliser le test de Durbin Watson, mais celui-ci n’évalue que le lag1.

2.1 Exemple de non-indépendance des résidus

Un cas classique de non-indépendance des résidus est rencontré lorsque la variable prédictive est une variable temporelle.Dans cette situation, les résidus sont dits “auto-corrélés“.

Pour illustrer cette situation, nous allons utiliser une partie du jeu de données “airquality” du package “dataset” (installé par défaut à chaque session R), en le réduisant aux données du mois numéro 9.

 

Si on ajuste le modèle de régression de la variable “Ozone” en fonction de la variable “Day” (qui va de 1 à 30), on s’aperçoit que les résidus sont auto-corrélés.

régression linéaire avec R

 

Le lag plot montre clairement que les résidus de lag 1 sont auto-corrélés, puisque le coefficient de corrélation dépasse la borne supérieure de l’intervalle de confiance du coefficient de corrélation de valeur nulle.

 

Le test de Durbin-Watson confirme l’auto-corrélation de lag1, puisque la pvalue est égale à 0.

Cela n’est pas étonnant, car on peut légitimement penser que le niveau d’Ozone du jour j+1 dépend de celui observé au temps précédent, c’est-à-dire au jour j.

 

2.2 Prise en compte de l’auto-corrélation par ajout d’une structure de corrélation

Dans cette situation, il est nécessaire d’ajouter une structure corrélation des résidus, dans le modèle de régression, afin de modéliser cette dépendance. Concrètement, il s’agit d’ajouter une matrice de variance co-variance de type auto-regressive 1 (AR-1). Pour cela, il est nécessaire d’utiliser la fonction “gls” du package “nlme”, et d’ajouter la structure corAR1(form=~Day) dans l’argument “correlation”.

 

Afin de vérifier que l’ajout de cette structure de corrélation améliore la qualité du modèle, on peut comparer les critères d’Akaiké (AIC). Mais comme le modèle avec structure de corrélation a été ajusté avec la fonction gls, il faut refaire tourner un modèle sans structure, avec la fonction “gls” également.

L’AIC du modèle avec structure de variance est nettement plus faible, ce qui montre que sa qualité est meilleure.

Lorsqu’on regarde les sorties de ces deux modèles, on s’aperçoit que le coefficient de la pente a un peu bougé : -1.8 pour le modèle sans structure contre -2.1 pour le modèle avec la structure de corrélation AR1.

 

En revanche, l’erreur standard de la pente varie énormément, puisqu’elle est multipliée par un facteur environ 2.5 : elle est égale à 0.4 dans le modèle sans structure de corrélation, alors qu’elle est égale à 0.98 dans le modèle prenant en compte l’auo-corrélation des résidus. L’influence de cette augmentation de l’erreur standard sur la valeur de la statistique T est très importante, puisqu’elle passe de -4.55 dans le modèle sans prise en compte de l’auto-corrélation, à -2.15 lorsque celle-ci est modélisée. Avec évidemment une répercussion sur la p-value qui passe de 1e-04 à 0.04.

De manière générale, lorsque l’auto-corrélation des résidus n’est pas prise en compte, la régression linéaire conduit à des faux positifs, c’est-à-dire à conclure que la pente est significativement différente de 0, alors qu’en réalité elle ne l’est pas.

Autre précision importante, lorsque les résidus sont auto-corrélés, la corrélation de Spearman ne peut pas être employée, car cette méthode nécessite l’indépendance des données (c’est sa seule hypothèse).

Il existe d’autre structures de corrélation, et vous trouverez davantage d’informations sur celles-ci dans le livre “Mixed Effects Models and Extensions in Ecology with R” d’Alain F. Zuur et Elena N. Ieno,

ainsi que dans le livre “Mixed-Effects Models in S and S-Plus” de Bates et Pinheiro.

Il existe encore d‘autres types de dépendance, comme la dépendance spatiale. L’évaluation se fait par un variogramme. Et dans ce cas, la modélisation de la structure de corrélation est faite en fonction des coordonnées de latitude et longitude des points, en employant des structures de type “corExp”, “corGaus”, “corSpher” ou encore “corLin ” par exemple.

Les structures de corrélation prises en charge par le package “nlme” sont décrites dans la page d’aide de la fonction corClasses.

 

3. Quand la normalité n’est pas satisfaite

L’hypothèse de normalité des résidus est sans doute l’hypothèse la moins importante pour la régression linéaire simple, car le modèle linéaire est sensé être robuste. Néanmoins, je vous conseille tout de même de l’évaluer visuellement par un QQplot et par un test de Shapiro-Wilk. Si le défaut de normalité est marqué sur le QQ plot, c’est à dire si les résidus sont distribués de façon incurvés, ou si vous avez peu de données (entre 10 et 20) et qu’il y a un ou plusieurs outliers, je vous conseille de vous diriger vers une solution alternative. Il y en a trois, dans l’ordre de mes préférences :

1. Renoncer à la linéarité, se contenter de la monotonie, et utiliser le test du coefficient de corrélation de Spearman, puisque cette méthode ne nécessite que l’hypothèse d’indépendance.
2. Utiliser un test de permutation pour évaluer l’égalité à 0 de la pente puisque les tests de permutations ne nécessitent, eux aussi, que l’hypothèse d’indépendance
3. Appliquer une transformation log, racine carrée ou de type Box Cox sur la réponse afin d’améliorer la normalité des résidus, et refaire tourner le modèle de régression linéaire en appliquant la transformation.

 

Illustrons ce cas de figure avec le jeu de données suivant :

regression linéaire avec R

 

Lorsqu’on réalise la régression linéaire simple et qu’on évalue l’hypothèse de normalité, on s’aperçoit qu’il existe un défaut manifeste, avec la présence de 4 ou 5 outliers.

régression linéaire avec R

 

Le test de Shapiro-Wilk rejette la normalité.

3.1 Abandonner la linéarité et utiliser la corrélation de Spearman

 

Ici, la p-value est largement inférieure au seuil de significativité généralement employé de 0.05. On conclut donc à la dépendance monotone significative entre les variables x et y.

 

3.2 Utiliser un test de permutation

Pour cela, on peut utiliser la fonction “lmp” du package “lmPerm”. Il est nécessaire de fixer la graine du nombre aléatoire sur lequel sont basées les permutations, afin de pouvoir reproduire des résultats strictement similaires.

 

 

Si on compare avec les résultats de la régression linéaire simple classique, on s’aperçoit que les p-values sont plutôt proches.

 

Ce qui va dans le sens de la robustesse de la régression linéaire vis-à-vis d’un défaut de normalité des résidus. Néanmoins, il me semble prudent de le vérifier par un test de permutation, quitte à garder les résultats de la régression s’il ya peu de différence.

3.3 Utiliser une transformation sur la variable réponse

 3.3.1 Transformation log (fonction log1p)

 

 

Ici, la transformation log n’est pas satisfaisante.

3.2 Transformation racine carrée (fonction sqrt)

 

regression linéaire avec R

 

 

 

La transformation racine carrée n’est pas non plus satisfaisante.

 

3.3 Transformation Box Cox (fonction powerTransform)

La transformation Box-Cox est définie par :

$$
T_{BC}(y,\lambda) = y^{\lambda} \left\{ \begin{array}{rcl}
{\frac{y^{\lambda}-1}{\lambda}} & \mbox{when} & \lambda\neq 0 \\
log(y) & \mbox{when} & \lambda = 0\\
\end{array}\right.
$$

Il s’agit d’une généralisation de la transformation logarithmique. Lorsque le paramètre lambda est égal à 0, alors la transformation Box-Cox revient à une transformation log (népérien).

Le paramètre Lambda est estimé par maximisation de la log vraisemblance. En pratique, on peut réaliser une transformation Box-Cox de la variable réponse, en utilisant la fonction “powerTransform” du package “car”. Le principe est de :

  1. Estimer le paramètre lambda,
  2. Créer la variable réponse transformée,
  3. Refaire tourner le modèle de régression avec la réponse transformée.

 

Ici, lambda est estimé à -0.5401. Cependant, en pratique, on utilise généralement une valeur arrondie, c’est celle qui est rapportée dans la colonne “Rounded Pwr” ; ici -1. Les deux autres colonnes sont les bornes inférieure et supérieure de l’intervalle de confiance à 95% du paramètre
lambda.

Les lignes en dessous fournissent des informations pour les deux valeurs entières de lambda encadrant le lambda optimal. Lorsque la p-value est inférieure à 0.05, cela signifie que les valeurs de lambda ne sont pas satisfaisantes. Le seuil de 0.05 ne doit pas être appliqué strictement, c’est un repère.

Ici, aucune ne semble satisfaisante. Néanmoins, quand on applique la transformation, l’hypothèse de normalité devient satisfaisante.

 

 

On voit ici, que la transformation Box-Cox permet de bien améliorer la normalité des résidus.

Remarque : Lorsque la variable y n’est pas strictement positive, il est nécessaire de rajouter une constante dans la fonction “bcPower” afin que toutes les valeurs soient positives, comme ceci, par exemple en ajoutant 1.

 

De mon point de vu, en cas de rejet de l’hypothèse de normalité, il est préférable d’employer une corrélation de Spearman, ou un test de permutation, car cela permet de continuer à travailler sur les données brutes.

A noter que les transformations log, racine carrée, ou Box-Cox améliore également l’homogénéité des résidus.

 

4. Quand l’homogénéité n’est pas satisfaite

L’hypothèse d’homogénéité des résidus est importante, car lorsqu’elle n’est pas satisfaite, l’erreur standard de la pente est également sous estimée. Comme ce paramètre est le dénominateur de la statistique t du test de l’égalité à 0 de la pente, lorsque l’erreur standard de la pente est sous estimée, alors la statistique t est sur-estimée. Et par conséquent la p-value est plus faible qu’elle ne devrait.

$$ t\;value= \frac{\widehat{pente}}{\widehat{se_{pente}}} $$

L’hypothèse d’homogénéité des résidus peut être évaluée par un “residuals vs fitted” plot, en utilisant la racine carrée des résidus standardisés, ainsi que par le test de Breush-Pagan. Lorsque cette hypothèse est clairement rejetée, une des alternatives suivantes peut être employée :

  1. Renoncer à la linéarité, se contenter de la monotonie, et utiliser le test du coefficient de corrélation de Spearman, puisque cette méthode ne nécessite que l’hypothèse d’indépendance.
  2. Utiliser un test de permutation pour évaluer l’égalité à 0 de la pente puisque les tests de permutations ne nécessitent, eux aussi, que l’hypothèse d’indépendance.
  3. Appliquer une transformation log, racine carrée ou de type Box Cox sur la réponse afin d’améliorer l’homogénéité des résidus, et refaire tourner le modèle de régression linéaire.
  4. Utiliser des estimateurs sandwich de la matrice de variance-covariance des paramètres du modèle

Les trois premières alternatives ont été présentées dans le chapitre précédent car elles sont aussi des alternatives à la régression linéaire simple en cas de rejet de l’hypothèse de normalité des résidus. Nous allons donc nous focaliser sur l’emploi des estimateurs sandwich.

4.1 Utiliser des estimateurs sandwich pour estimer l’erreur standard des paramètres de la régression

Comme expliqué précédemment, en cas d’hétérogénéité des résidus, l’erreur standard des résidus est sous-estimée. Il s’agit donc, d’utiliser une méthode de calcul plus robuste, qui va conduire à une meilleure estimation de l’erreur standard, avec une valeur plus élevée.

En pratique, il s’agit d’estimer la matrice de variance-co-variance des paramètres du modèle de régression avec cette méthode robuste. Puis d’utiliser celle-ci pour calculer la statistique des tests d’égalité à 0 des paramètres, et donc pour dériver les p-values.

4.1.1 Data

 

Dans l’exemple ci-dessous, l’hypothèse d’homogénéité des résidus est clairement rejetée par la méthode visuelle, puisque celle-ci met en évidence une augmentation de la dispersion des résidus lorsque les fitted values augmentent.

 

régression linéaire avec R

Le test de Breush-Pagan rejette également l’hypothèse d’homogénéité des
résidus.

4.1.2 Mise en application

Le package “car” contient la fonction “hccm” qui fait appel aux estimateurs sandwich pour calculer la matrice de variance-covariance des paramètres du modèle de régression. On peut facilement comparer les deux types d’estimations avec les commandes suivantes :

 

On peut voir que la variance de la pente passe de 0.00047 à 0.0014, elle a quasiment était multiplié par 3.

Pour obtenir les résultats habituels de la régression, il est nécessaire d’utiliser la fonction “coeftest” du package “lmtest”, comme ceci :

 

A comparer avec la sortie de la fonction summary :

 

On peut voir que la statistique t de la pente était de 5.9, alors qu’elle n’est plus que de 3.43 lorsque l’hétérogénéité des résidus est prise en compte.

Remarque : En cas d’hétérogénéité des résidus, il est également possible de modéliser leur variance en ajoutant une structure de variance. Cette alternative me semble un peu complexe à mettre en oeuvre alors qu’il existe d’autres solutions plus simples, comme nous venons de le voir.

Néanmoins, pour ceux qui souhaitent se pencher sur la modélisation de la variance, cette méthode est très bien décrite dans le livre “Mixed Effects Models and Extensions in Ecology with R” d’Alain F. Zuur et Elena N. Ieno.

5. Pour aller plus loin

Pour avoir une vision plus large de cette question de la validité des hypothèses, vous pouvez lire cet article de Lise Vaudor ,  pour qui le respect de la normalité et de l’homogénéité ne doit pas être pris au pied de la lettre, et cet article de Guillaume Rousselet, qui lui au contraire, se bat pour promouvoir des tests statistiques plus robustes.

Enfin, pour plus d’informations sur les transformations, et plus généralement,  sur tout ce qui touche à la régression linéaire, je vous recommande le livre ” An R Companion to Applied Regression” de John Fox et Sanford Weisberg.

Ce livre décrit avec beaucoup de détails mais de façon très pédagogique,  l’utilisation du  package “car”.

 

6.Conclusion

Comme je l’ai dit en introduction, de mon point de vu, les hypothèses les plus importantes sont celles de l’indépendance et l’homogénéité des résidus car elles sont une forte influence sur la statistique du test de la pente. L’hypothèse de linéarité est également importante mais je pense qu’une certaine flexibilité peut être conservée, de même pour l’hypothèse de normalité.

J’espère que cet article vous sera utile, et qu’il vous permettra de réaliser vos régressions linéaires simples dans les meilleurs conditions possibles, et que vous saurez quoi faire, et comment, lorsqu’une ou plusieurs hypothèses ne sont pas satisfaites.

Et si cet article vous a plu, partagez le !

 

Note : Je touche une petite commission (entre 3 et 6%) si vous passez par les liens Amazon de cet article pour acheter les livres mentionnés. cela m’aide à entretenir ce blog, merci si vous le faites ! 😉

Credits photos : geralt

 

Retrouvez ici des articles en  lien avec celui que vous venez de lire:

Partager l'article
  •  
  •  
  •  
  •  
  •  
    3
    Partages
  • 3
  •  
  •  
  •  
  •  

1 Commentaire

Laisser un commentaire

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