Scénario de test & Cas d'usage
Modelos de árboles de regresión aditiva bayesiana.
Descubrir todas las acciones de bartCrea una tabla de pacientes con datos clínicos, introduciendo valores perdidos (.) de forma intencionada en las variables 'imc' y 'colesterol'.
| 1 | DATA mycas.pacientes_diabetes; |
| 2 | call streaminit(99); |
| 3 | DO id_paciente = 1 to 2000; |
| 4 | edad = 30 + floor(rand('UNIFORM') * 45); |
| 5 | presion_sistolica = 110 + rand('NORMAL', 20, 15); |
| 6 | imc_real = 22 + rand('NORMAL', 5, 3); |
| 7 | colesterol_real = 180 + rand('NORMAL', 30, 25); |
| 8 | |
| 9 | IF rand('UNIFORM') < 0.25 THEN imc = .; ELSE imc = imc_real; |
| 10 | IF rand('UNIFORM') < 0.15 THEN colesterol = .; ELSE colesterol = colesterol_real; |
| 11 | |
| 12 | nivel_glucosa = 90 + (edad * 0.5) + (presion_sistolica * 0.2) + (imc_real * 1.5) + (colesterol_real * 0.3) + rand('NORMAL', 0, 10); |
| 13 | OUTPUT; |
| 14 | END; |
| 15 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=mycas.pacientes_diabetes casout='pacientes_diabetes' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | bart.bartGauss / |
| 3 | TABLE={name='pacientes_diabetes'}, |
| 4 | target='nivel_glucosa', |
| 5 | inputs={'edad', 'presion_sistolica', 'imc', 'colesterol'}, |
| 6 | missing='SEPARATE', |
| 7 | nTree=40, |
| 8 | nBI=100, |
| 9 | nMC=400, |
| 10 | seed=888, |
| 11 | outputTables={names={VariableInfo='info_vars_separate'}}; |
| 12 | RUN; |
| 13 | QUIT; |
| 1 | PROC PRINT DATA=mycas.info_vars_separate; |
| 2 | RUN; |
La acción se completa sin errores, y la tabla 'VariableInfo' muestra que el número de observaciones utilizadas es 2000. Esto confirma que la estrategia 'SEPARATE' para valores perdidos funcionó como se esperaba, permitiendo que el modelo se entrene utilizando el conjunto de datos completo a pesar de la información incompleta. El modelo es robusto frente a datos imperfectos del mundo real.