/* ILLUSTRATION DE LA PROCÉDURE GLM POUR LE PLAN A CLASSIFICATION SIMPLE */ options nodate nonumber linesize=80 pagesize=70; ods html file='servo.html'; /* Cette commande va créer un fichier avec les résultats sous un format html; voir la dernière commande */ title 'Exemple tableau 18.5: Servo'; data servo; infile 'CH18TA05.DAT'; input Duree Endroit Panne; attrib Duree label="Durée de vie entre deux pannes"; attrib Design label="Emplacement des ordinateurs"; Racineduree=sqrt(Duree); Logduree=log(Duree); attrib Racineduree label="Racine carrée de la durée de vie entre deux pannes"; attrib Logduree label="Logarithme de la durée de vie entre deux pannes"; /* Cette fois, je n'utilise pas l'option plot de la procédure univariate. J'utilise plutôt la procédure boxplot pour obtenir les diagrammes en boîtes côte-à-côte. Comme vous pouvez le constater l'énoncé est de la forme plot Y*X où Y est la variable continue et X est la variable qualitative. Cette commande crée des graphiques sous forme de fichiers gif. */ proc univariate; var Duree; by Endroit; run; proc boxplot; plot Duree*Endroit; run; /* Voici la procédure pour obtenir l'analyse de variance de base avec comparaisons multiples à l'aide de la procédure glm. Celle-ci est plus appropriée que anova pour les plans non équilibrés avec plus d'un facteur. Par contre, lorsque le plan est équilibré, les calculs sont plus efficaces avec la procédure anova. La procédure glm offre beaucoup plus d'options. En particulier, on peut sauvegarder les résidus pour les analyser, ce que nous ferons. Puisqu'il y a le même nombre d'observations dans chaque groupe, il faut utiliser l'option cldiff pour avoir les intervalles explicites; dans les plans équilibrés, par défaut c'est comme si on avait l'option lines. La même chose est vraie de la procédure anova lorsque le plan est équilibré. */ proc glm; class Endroit; model Duree=Endroit; means Endroit / scheffe tukey cldiff; /* La commande suivante demande de conserver les résidus (r) dans une variable appelée residus */ output r=residus; run; /* Pour obtenir le graphique quantiles normaux des rédidus. À nouveau, ceci va créer des fichiers gif. */ proc univariate; var residus; qqplot; run; /* Analyse pour la racine carrée de la durée */ proc univariate; var Racineduree; by Endroit; run; proc boxplot; plot Racineduree*Endroit; run; proc glm; class Endroit; model Racineduree=Endroit; means Endroit / scheffe tukey cldiff; output r=residus2; run; proc univariate; var residus2; qqplot; run; /* Analyse pour le logarithme de la durée */ proc univariate; var Logduree; by Endroit; run; proc boxplot; plot Logduree*Endroit; run; proc glm; class Endroit; model Logduree=Endroit; means Endroit / scheffe tukey cldiff; output r=residus3; run; proc univariate; var residus3; qqplot; run; /* Analyse non paramétrique. ATTENTION: Wilcoxon veut dire Kruskal-Wallis s'il y a plus de deux groupes! */ proc npar1way wilcoxon; class Endroit; var Duree; var Logduree; run; ods html close;