L'analyse des résidus est facilitée par de nombreuses fonctions et dispositifs de l'environnement R.

Les fonctions de régression dans le sens le plus large du terme produisent des objets (structures) que d'autres fonctions spécialisées peuvent exploiter. Prenons d'abord comme exemple la fonction line() qui produit une droite résistante; cette fonction produit une objet qui contient:

List of 4
 $ call         : language line(x, y)
 $ coefficients : num [1:2] 119.58  -1.34
 $ residuals    : num [1:183]  68.47   8.92 -21.48   1.56   7.68 ...
 $ fitted.values: num [1:183] 95.531 42.080 71.478 55.442 -0.681 ...
 - attr(*, "class")= chr "tukeyline"

donc une liste qui contient l'appel à la fonction elle-même (ce qui permettra à une autre fonction de la ré-exécuter au besoin), les cofficients de régression, mais aussi les résidus et les valeurs ajustées. Ceci permet d'écrire par exemple

lignexp <- line(urb,mortinf)
plot(lignexp$residuals)

pour obtenir un simple nuage des résidus, mais on préfère, dans la philosophie R, d'utiliser des fonctions génériques pour le faire:

lignexp <- line(urb,mortinf)
plot(residuals(linexp))

n'est à première vue pas très différent du premier exemple, mais la deuxième forme permet de faire une implémentation générique pour toutes sortes de fonctions de régressions et le rajout d'options supplémentaires.

On trouvera en R les fonctions suivantes: residuals() ou encore resid() qui est un synonyme (autre avantage d'utiliser une fonction..), fitted ou fitted.values pour les valeurs ajustées. Ceci permet aussi une écriture plus claire:

plot(resid(lignexp),fitted(lignexp))
boxplot(resid(lignexp)

Les fonctions qui produisent un objet de classe lm, peuvent utiliser la fonction plot() directement pour produire tout une série de graphiques de diagnostic liés à la régression.

Liens