Calculer les coefficients d'un contrast

Intérêt du test

La PROC GLM vous permet de tester un CONTRAST, c'est à dire la nullité d'une somme pondérée des moyennes de groupes. Cela vous permet, en pratique, de vérifier l'existance d'un effet linéaire (les moyennes croissent ou décroissent de manière proportionnelle), quadratique (il existe une relation de proportionnalité entre les carrés des moyennes), cubique (on a une relation entre les cubes des moyennes) ou d'ordre supérieur (moyennes puissance 4, 5 ou davantage, bien que souvent le cube soit la limite à laquelle on arrête nos recherches).

Type de données requis

Outre une variable quantitative dont la PROC GLM calculera les moyennes, il faut également une variable qualitative (de groupe) dont on veut tester l'influence. Ici, on s'intéresse à une variable de groupe ordonnée ; c'est à dire qu'on peut classer les valeurs de cette variable par ordre croissant. Par exemple, dans l'industrie pharmaceutique, on teste un effet dose : on a administré au sujet une dose 0 de substance active (traitement placebo ou témoin), puis 15mg, puis 30mg, puis45mg, etc... En marketing, on peut tester le taux d'achats fait suite à un mailing où l'on distribuait des coupons de réduction de 10, 20 ou 30%...

La syntaxe de la PROC GLM devient alors celle-ci...

PROC GLM DATA = tableSAS ;
    CLASS maVariableDeGroupe ;
    MODEL maVariableQuantitaive = maVariableDeGroupe;
    CONTRAST "NomDuContraste" maVariableDeGroupe coefficientsDuContrast ;
RUN ; QUIT ;

La partie la plus complexe est ici de déterminer les coefficients du Contrast, qui permettent le calcul de la somme pondérée des moyennes, et donc le test de notre hypothèse. Ces coefficients dépendent du degré de la relation testée (1 pour linéaire, 2 pour quadratique, 3 pour cubique, ...) et du nombre de groupes (3 minimum).

Calcul des coefficients

On peut demander à SAS de calculer ces coefficients. Pour cela, il suffit d'un petit programme (ci-dessous) et d'une licence SAS/IML (langage matriciel). Si vous ne possédez pas SAS/IML, vous pouvez toujours consulter la table des coefficients livrée [ici].

Le programme

proc iml ;

/* rangs des différents groupes proposés (par exemple 1 2 3 4 5) */
levels = {1 2 3 4} ;

/* contrast est une matrice contenant les coefficients pour les tests de tendance
de degré 0 à n où n est le nombre de groupes */
contrast = orpol(levels,4) ; /* le 2ème argument d'ORPOL est le nombre de groupes */

/* on "normalise" par rapport au 1er coefficient de la série pour obtenir des
coefficients plus "lisibles" ; on y ajoute les rangs des groupes pour mettre les coefficients dans l'ordre */
linear = (contrast[,2]/contrast[1,2])||(levels`) ;
quadratic = (contrast[,3]/contrast[1,3])||(levels`) ;
cubic = (contrast[,4]/contrast[1,4])||(levels`) ;

print linear ; /* affichage dans l'Output */
print quadratic ;
print cubic ;

quit ;

Les sorties

Retrouvez [ici] la liste des coefficients pour les tendances linéaire, quadratique et cubique, pour 3 à 10 groupes.

Utilisation

Recopiez les coefficients dans l'ordre, séparés par des espaces, dans votre instruction CONTRAST. Par exemple, pour tester une tendance quadratique sur 4 groupes...

(...)
CONTRAST "quadratique" dose 1 -1 -1 1 ;
(...)


Haut de la page