Risque Relatif et Différence de Risque : Comment valider vos analyses binaires avec SAS ?

Niveau de difficulté
Débutant
Publié le :
Michael

Le Conseil de l'Expert

Michael
Responsable de l'infrastructure Viya.

L'intégration de la PROC FREQ avec l'option AGREE sur le jeu de données Students complète l'analyse en fournissant le test de McNemar et le coefficient Kappa. C'est la méthode recommandée pour valider la cohérence interne des données avant de passer aux calculs d'intervalles de confiance pour la différence de risque (RD). Pour un reporting complet, l'astuce d'expert consiste à capturer les résultats de %pairbinci dans une table de sortie afin de les comparer directement aux statistiques d'accord de SAS.

Le script commence par plusieurs appels à la macro `%pairbinci` pour valider ses calculs d'intervalles de confiance pour la différence de risque (RD) et le risque relatif (RR). Ces appels utilisent des paramètres spécifiques (`level`, `bcf`, `skew`, `contrast`, `dps`) pour tester différentes méthodes (Tango, SCAS) et répliquer des résultats de publications scientifiques (Fagerland et al., 2014, Laud 2025). Des cas limites pour le risque relatif (RR) sont également testés lorsque certaines probabilités sont nulles.
Ensuite, un pas `DATA` crée un jeu de données nommé `Students` à partir de données internes (`datalines`). Ce jeu de données représente des observations d'étudiants ayant réussi ou échoué à un examen avant et après une intervention.
Enfin, `PROC FREQ` est utilisée sur le jeu de données `Students` pour générer des tableaux de fréquences croisées entre `PassPre` et `PassPost`, incluant l'option `AGREE` pour des statistiques d'accord. L'option `WEIGHT Count` est utilisée pour refléter les fréquences des observations.
Une section commentée contient du code de développement pour tester la transformation tangente.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données `Students` est créé directement dans le script via un pas `DATA` et des `datalines`. Les appels à la macro `%pairbinci` utilisent des valeurs numériques codées en dur, ne nécessitant pas de source de données externe.

1 Bloc de code
MACRO CALL
Explication :
Appel de la macro `PAIRBINCI` pour calculer l'intervalle de confiance pour la différence de risque (RD) en utilisant la méthode Tango, basée sur les données du Tableau II de Fagerland et al, 2014.
Copié !
1%pairbinci(1,1,7,12,level=0.95, bcf=FALSE, skew=FALSE, contrast = RD, dps = 3);
2 
2 Bloc de code
MACRO CALL
Explication :
Appel de la macro `PAIRBINCI` pour calculer l'intervalle de confiance pour le risque relatif (RR) en utilisant la méthode Tango, basée sur les données du Tableau II de Fagerland et al, 2014.
Copié !
1%pairbinci(1,1,7,12,level=0.95, bcf=FALSE, skew=FALSE, contrast = RR, dps = 3);
2 
3 Bloc de code
MACRO CALL
Explication :
Appel de la macro `PAIRBINCI` pour calculer l'intervalle de confiance pour la différence de risque (RD) en utilisant la méthode SCAS (Laud 2025), basée sur les données du Tableau II de Fagerland et al, 2014.
Copié !
1%pairbinci(1,1,7,12,level=0.95, bcf=TRUE, skew=TRUE, contrast = RD, dps = 3);
2 
4 Bloc de code
MACRO CALL
Explication :
Appel de la macro `PAIRBINCI` pour calculer l'intervalle de confiance pour le risque relatif (RR) en utilisant la méthode SCAS (Laud 2025), basée sur les données du Tableau II de Fagerland et al, 2014.
Copié !
1%pairbinci(1,1,7,12,level=0.95, bcf=TRUE, skew=TRUE, contrast = RR, dps = 3);
2 
5 Bloc de code
MACRO CALL
Explication :
Tests des cas limites pour le risque relatif (RR) où la probabilité de l'événement dans le groupe 2 est nulle (p2 = 0), ce qui peut entraîner un RR infini. Les deux méthodes (Tango et SCAS) sont testées.
Copié !
1*** Check handling of boundary cases for RR;
2*** p2 = 0 -> RR = Inf;
3%pairbinci(0,7,0,12,level=0.95, bcf=FALSE, skew=FALSE, contrast = RR);
4%pairbinci(0,7,0,12,level=0.95, bcf=TRUE, skew=TRUE, contrast = RR);
6 Bloc de code
MACRO CALL
Explication :
Tests des cas limites pour le risque relatif (RR) où la probabilité de l'événement dans le groupe 1 est nulle (p1 = 0), ce qui devrait entraîner un RR de 0. Les deux méthodes (Tango et SCAS) sont testées.
Copié !
1*** p1 = 0 -> RR = 0;
2%pairbinci(0,0,7,12,level=0.95, bcf=FALSE, skew=FALSE, contrast = RR);
3%pairbinci(0,0,7,12,level=0.95, bcf=TRUE, skew=TRUE, contrast = RR);
4 
7 Bloc de code
MACRO CALL
Explication :
Tests des cas limites pour le risque relatif (RR) où les probabilités des événements dans les deux groupes sont nulles (p1 = p2 = 0). Les deux méthodes (Tango et SCAS) sont testées.
Copié !
1*** p1 = p2 = 0;
2%pairbinci(0,0,0,12,level=0.95, bcf=FALSE, skew=FALSE, contrast = RR);
3%pairbinci(0,0,0,12,level=0.95, bcf=TRUE, skew=TRUE, contrast = RR);
4 
8 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données `Students` contenant des données appariées simulées sur le succès (Pass) ou l'échec d'étudiants avant (`PassPre`) et après (`PassPost`) une intervention, avec une variable `Count` pour les fréquences.
Copié !
1DATA Students;
2 INPUT PassPre PassPost Count;
3 DATALINES;
4 0 0 12
5 0 1 7
6 1 0 1
7 1 1 1
8 ;
9RUN;
9 Bloc de code
PROC FREQ
Explication :
Exécution de la procédure `FREQ` pour générer un tableau de contingence croisé de `PassPre` par `PassPost` à partir du jeu de données `Students`. Les options `NOPERCENT`, `NOROW`, `NOCOL` suppriment l'affichage des pourcentages. L'option `AGREE` demande des statistiques d'accord pour les données appariées. La variable `Count` est utilisée comme variable de pondération.
Copié !
1PROC FREQ DATA=Students;
2 tables PassPre*PassPost / nopercent norow nocol agree;
3 weight Count;
4* ods select CrossTabFreqs McNemarsTest;
5RUN;
L'Astuce Pro
Pour securiser vos analyses sur des echantillons apparies avec de faibles effectifs (cas p1=0 ou p2=0), activez systematiquement les options BCF=TRUE et SKEW=TRUE dans la macro PAIRBINCI : ces parametres appliquent une correction de biais (Bias-Corrected) et prennent en compte l asymetrie de la distribution, ce qui evite d obtenir des intervalles de confiance aux bornes aberrantes (0 ou Inf) ou trop etroites que donnerait l approche de Wald standard utilisee par defaut dans la PROC FREQ.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Program Name : V_PAIRBINCI.SAS Type : macro validation Description : Validation of PAIRBINCI macro Including replication of published examples Author : Pete Laud Date Created : 2025-05-14 Program Status : CREATED