L'automatisation du test du Chi-deux via une macro SAS permet de standardiser l'analyse des tableaux de contingence tout en garantissant une extraction rigoureuse des résultats. L'utilisation de ODS OUTPUT au sein de la macro est une pratique d'excellence : elle permet de transformer les résultats statistiques de PROC FREQ en tables de données exploitables pour des rapports ou des étapes de calcul ultérieures. Pour les petits échantillons ou les tableaux très déséquilibrés, n'oubliez pas d'exploiter l'argument EXACT (comme le test exact de Fisher) afin de pallier les limites de l'approximation du Chi-deux.
Type : MIXTE
La macro fonctionne sur une table d'entrée spécifiée par le paramètre `dsn`. L'exemple de documentation suggère l'utilisation de `sashelp.bmt`.
| 1 | %macro chisq(vars, dsn, tests=chisq, outFreq=NULL, outChi=tmp, |
| 2 | order=freq, testOpt=, where=, BY=); |
| 3 | |
| 4 | * Close output to listing file/log; |
| 5 | ods listing close; |
| 6 | PROC FREQ DATA=&dsn order=ℴ |
| 7 | tables &vars / chisq &testOpt; |
| 8 | exact &tests ; |
| 9 | where &where; |
| 10 | BY &BY; |
| 11 | * Output results into a dataset; |
| 12 | ods OUTPUT CrossTabFreqs=&outFreq ChiSq=&outChi; |
| 13 | RUN; |
| 14 | ods listing; |
| 15 | |
| 16 | * Remove some extraneous variables; |
| 17 | DATA &outFreq; |
| 18 | SET &outFreq (drop=_TYPE_ _TABLE_); |
| 19 | RUN; |
| 20 | |
| 21 | * Print the results; |
| 22 | PROC PRINT DATA=&outFreq; |
| 23 | RUN; |
| 24 | PROC PRINT DATA=&outChi; |
| 25 | RUN; |
| 26 | %mend chisq; |