Scénario de test & Cas d'usage
Modelos de árboles de regresión aditiva bayesiana.
Descubrir todas las acciones de bartGenera un conjunto de datos voluminoso (50,000 pacientes) para simular un ensayo clínico. Incluye un ID de paciente, un biomarcador de mejora, la dosis administrada, una condición preexistente y un grupo de edad categórico ('Joven', 'Adulto').
| 1 | DATA mycas.ensayo_clinico_vol(drop=i); |
| 2 | call streaminit(456); |
| 3 | LENGTH edad_grupo $ 6; |
| 4 | DO i = 1 to 50000; |
| 5 | paciente_id = i; |
| 6 | condicion_previa = rand('BERNOULLI', 0.3); |
| 7 | IF rand('UNIFORM') > 0.4 THEN edad_grupo = 'Adulto'; ELSE edad_grupo = 'Joven'; |
| 8 | IF rand('UNIFORM') > 0.5 THEN dosis_medicamento = 100; ELSE dosis_medicamento = 50; |
| 9 | mejora_salud = (dosis_medicamento * 0.15) - (condicion_previa * 5) + (ifc(edad_grupo='Joven', 10, 0)) + rand('NORMAL', 0, 5); |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | RUN; |
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'bart'; |
| 3 | bart.bartGauss RESULT=res / |
| 4 | TABLE={name='ensayo_clinico_vol'}, |
| 5 | inputs={{name='dosis_medicamento'}, {name='condicion_previa'}, {name='edad_grupo'}}, |
| 6 | target='mejora_salud', |
| 7 | nominals={{name='edad_grupo'}}, |
| 8 | saveState={name='modelo_ensayo_clinico', replace=true}; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | bart.bartScoreMargin / |
| 3 | TABLE={name='ensayo_clinico_vol'}, |
| 4 | model={name='modelo_ensayo_clinico'}, |
| 5 | margins={{name='joven_50mg', at={{var='edad_grupo', value='Joven'}, {var='dosis_medicamento', value=50}}}, |
| 6 | {name='joven_100mg', at={{var='edad_grupo', value='Joven'}, {var='dosis_medicamento', value=100}}}, |
| 7 | {name='adulto_50mg', at={{var='edad_grupo', value='Adulto'}, {var='dosis_medicamento', value=50}}}, |
| 8 | {name='adulto_100mg', at={{var='edad_grupo', value='Adulto'}, {var='dosis_medicamento', value=100}}}}, |
| 9 | differences={{name='dif_joven', evtMargin='joven_100mg', refMargin='joven_50mg'}, |
| 10 | {name='dif_adulto', evtMargin='adulto_100mg', refMargin='adulto_50mg'}}, |
| 11 | casOut={name='eficacia_dosis_out', replace=true}; |
| 12 | RUN; |
| 13 | QUIT; |
La tabla de salida 'eficacia_dosis_out' debe contener 6 filas. Cuatro filas para los márgenes predictivos de cada segmento y dos filas para las diferencias. Se espera que las diferencias ('dif_joven', 'dif_adulto') sean positivas, mostrando el beneficio de la dosis más alta. El análisis permitirá comparar si este beneficio es significativamente diferente entre jóvenes y adultos.