Scénario de test & Cas d'usage
Modèles d'arbres de régression additive bayésienne.
Découvrir toutes les actions de bartGénération d'un jeu de données volumineux simulant un essai clinique. La réduction de la pression artérielle dépend de la dose et de l'âge.
| 1 | DATA casuser.clinical_trial_large; |
| 2 | call streaminit(1234); |
| 3 | DO patient_id = 1 to 500000; |
| 4 | age = 30 + floor(rand('UNIFORM') * 45); |
| 5 | dosage_mg = 10 * (1 + floor(rand('UNIFORM') * 5)); /* Doses de 10, 20, 30, 40, 50 */ |
| 6 | reduction_pression = 5 + (dosage_mg * 0.2) - (age * 0.1) + rand('NORMAL', 0, 3); |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'bart'; |
| 3 | LOADACTIONSET 'sampling'; |
| 4 | |
| 5 | sampling.srs TABLE={name='clinical_trial_large'}, |
| 6 | samppct=1, |
| 7 | partind=true, |
| 8 | OUTPUT={casout={name='clinical_sample', replace=true}, copyvars='ALL'}; |
| 9 | |
| 10 | bart.bartGauss TABLE={name='clinical_sample', where='_PartInd_ = 1'}, |
| 11 | model={depvar='reduction_pression', effects={'age', 'dosage_mg'}}, |
| 12 | store={name='model_clinical', replace=true}; |
| 13 | RUN; |
| 1 | PROC CAS; |
| 2 | bart.bartScoreMargin TABLE='clinical_trial_large', |
| 3 | model='model_clinical', |
| 4 | margins={ |
| 5 | {name='margin_low_dose', at={{var='dosage_mg', value=10}}}, |
| 6 | {name='margin_medium_dose', at={{var='dosage_mg', value=30}}}, |
| 7 | {name='margin_high_dose', at={{var='dosage_mg', value=50}}} |
| 8 | }, |
| 9 | casOut={name='clinical_margins_large', replace=true, label='Résultats Marges Essai Clinique Volumineux'}; |
| 10 | RUN; |
| 11 | QUIT; |
L'action doit s'exécuter sans erreur sur le grand volume de données. Une table CAS nommée 'clinical_margins_large' doit être créée dans la caslib de l'utilisateur. Les tables de résultats affichées sur le client ('PredMargins', etc.) doivent être présentes mais le résultat principal est la table CAS de sortie, démontrant la capacité de l'action à gérer des données volumineuses côté serveur.