causalanalysis caEffect

Analyse d'impact clinique à grande échelle (Performance/IPW)

Scénario de test & Cas d'usage

Contexte Métier

Un institut de recherche souhaite analyser l'effet d'un nouveau protocole de soin sur la durée d'hospitalisation (variable continue) sur une cohorte très large (1 million de patients). Le but est de tester la performance de l'action CAS sur un gros volume de données en utilisant la méthode IPW (Inverse Probability Weighting).
À propos du Set : causalanalysis

Analyse d'inférence causale et estimation d'effets.

Découvrir toutes les actions de causalanalysis
Préparation des Données

Génération de 1 million de lignes représentant des patients, avec un traitement binaire (Standard vs Nouveau).

Copié !
1 
2DATA casuser.hospital_large;
3call streaminit(12345);
4DO i = 1 to 1000000;
5age = 50 + rand('Normal', 0, 10);
6/* Propensity Score */ ps_new = 1 / (1 + exp(-( -2 + 0.05*age )));
7ps_std = 1 - ps_new;
8/* Traitement */ IF rand('Uniform') < ps_new THEN protocol = 'Nouveau';
9ELSE protocol = 'Standard';
10/* Resultat : Duree sejour (jours) */ days = 10 - 0.1*age;
11IF protocol='Nouveau' THEN days = days - 2;
12/* Effet benefique */ days = days + rand('Normal', 0, 2);
13OUTPUT;
14END;
15 
16RUN;
17 

Étapes de réalisation

1
Vérification de la volumétrie.
Copié !
1 
2PROC CAS;
3SIMPLE.numRows / TABLE={name='hospital_large'};
4 
5RUN;
6 
2
Exécution de caEffect sur 1M de lignes avec méthode IPW.
Copié !
1 
2PROC CAS;
3causalanalysis.caEffect / TABLE={name='hospital_large'}, treatVar={name='protocol'}, outcomeVar={name='days', type='CONTINUOUS'}, method='IPW', pom=[ {trtLev='Standard', trtProb='ps_std'}, {trtLev='Nouveau', trtProb='ps_new'} ], difference=[ {refLev='Standard', evtLev='Nouveau'} ], inference=false;
4/* Inference false pour prioriser la vitesse de calcul des moyennes */
5RUN;
6 

Résultat Attendu


L'exécution doit se terminer sans erreur de mémoire ou de timeout. Le résultat doit montrer une différence moyenne d'environ -2 jours pour le protocole 'Nouveau'. L'absence d'inférence (inference=false) doit accélérer le rendu.