Scénario de test & Cas d'usage
Machine Learning automatisé (AutoML) et génération de pipelines.
Découvrir toutes les actions de dataSciencePilotCréation d'une table de patients avec des données manquantes complexes : des lignes entièrement vides, des examens optionnels manquants, et une variable cible binaire.
| 1 | DATA casuser.etude_clinique; |
| 2 | LENGTH EFFET_SECONDAIRE $3.; |
| 3 | DO ID_PATIENT = 1 to 500; |
| 4 | AGE = 30 + int(rand('UNIFORM')*50); |
| 5 | POIDS = 60 + rand('NORMAL', 0, 10); |
| 6 | EXAMEN_A = rand('NORMAL', 10, 2); |
| 7 | EXAMEN_B_OPT = rand('NORMAL', 5, 1); |
| 8 | EXAMEN_C_OPT = rand('NORMAL', 100, 20); |
| 9 | IF rand('UNIFORM') < 0.2 THEN EFFET_SECONDAIRE = 'Oui'; |
| 10 | ELSE EFFET_SECONDAIRE = 'Non'; |
| 11 | /* Patients ayant abandonné l'étude (après l'examen A) */ |
| 12 | IF 100 <= ID_PATIENT <= 120 THEN call missing(EXAMEN_B_OPT, EXAMEN_C_OPT); |
| 13 | /* Patients n'ayant pas fait l'examen C optionnel */ |
| 14 | IF rand('UNIFORM') < 0.3 THEN call missing(EXAMEN_C_OPT); |
| 15 | /* Erreurs de saisie / Lignes vides */ |
| 16 | IF _n_ in (50, 150, 250) THEN call missing(of _all_); |
| 17 | OUTPUT; |
| 18 | END; |
| 19 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.etude_clinique casout='etude_clinique' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | dataSciencePilot.analyzeMissingPatterns |
| 3 | TABLE={name='etude_clinique'}, |
| 4 | target='EFFET_SECONDAIRE', |
| 5 | casOut={name='clinique_edge_case_analysis', replace=true}; |
| 6 | RUN; |
| 7 | QUIT; |
La table de résultats `clinique_edge_case_analysis` doit gérer les lignes entièrement vides sans échouer. Elle doit identifier plusieurs modèles : un modèle pour l'absence conjointe de `EXAMEN_B_OPT` et `EXAMEN_C_OPT` (abandon), et un autre pour l'absence de `EXAMEN_C_OPT` seul (examen optionnel). L'analyse par rapport à la cible `EFFET_SECONDAIRE` devrait permettre de voir si, par exemple, les patients pour qui `EXAMEN_B_OPT` est manquant sont plus ou moins susceptibles d'avoir des effets secondaires. Cela teste la robustesse de l'action face à des données très dégradées et l'utilité du paramètre `target`.