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).
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).
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].
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 ;
Retrouvez [ici] la liste des coefficients pour les tendances linéaire, quadratique et cubique, pour 3 à 10 groupes.
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 |