Le diagramme Quantile-Quantile est un outil graphique qui permet de comparer la pertinence de l’ajustement de données à un modèle théorique (loi de probabilité). Cela peut se révéler très pratique pour analyser la normalité des résidus d’un modèle linéaire par exemple.

Cet outil permet également de comparer deux distributions : un alignement selon la première bissectrice indique la présence d’une identité de loi.

R présente des fonctions de bases permettant de tracer des QQplot :

qqplot produit un QQplot de deux jeux de données
qqnorm produit un QQplot pour une loi normale
qqline trace la droite de Henry

Voyons un exemple d’utilisation




#nombres aléatoires tirés d'une loi

#normale de moyenne 0 et d'écart-type 1
a<-rnorm(100,mean=0,sd=1)

#gamma
b<-rgamma(100,shape=1,rate=0.8)

#normale de moyenne 0.5 et d'écart-type 0.5
c<-rnorm(100,mean=0.5,sd=0.5)

#on visualise tout ça sur un graphique

x11()
plot(a,pch=20,ylim=c(-5,5))
points(b,pch=20,col="blue")
points(c,pch=20,col="grey")
legend("bottomleft",legend=c("nombres aléatoires loi normale1",
    "nombres aléatoires loi gamma","nombres aléatoires loi normale2"),
    col=c("black","blue","grey"),pch=20)


x11()
par(mfrow=c(2,2))

qqnorm(a,main="QQ plot a")
qqline(a)

qqnorm(b,main="QQplot b")
qqline(b)

qqplot(b,a,main="QQplot b et a")

qqplot(a,c,main="QQplot a et c")

Il existe d’autres fonctions permettant de tracer des QQplots. La fonction qqmath du package Lattice permet, elle, de tracer des QQplot pour d’autres distributions théoriques (qqnorm compare à une loi normale).

Bon QQplot!