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!