Scénario de test & Cas d'usage
Creación de un dataset pequeño pero sucio con valores perdidos (.) en variables predictoras clave.
| 1 | |
| 2 | DATA casuser.medical_diagnosis; |
| 3 | call streaminit(789); |
| 4 | DO i=1 to 200; |
| 5 | biomarker_A = rand('Normal', 50, 10); |
| 6 | IF rand('Uniform') < 0.2 THEN biomarker_B = .; |
| 7 | ELSE biomarker_B = rand('Normal', 20, 5); |
| 8 | IF rand('Uniform') < 0.4 THEN disease = 'Pos'; |
| 9 | ELSE disease = 'Neg'; |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | |
| 13 | RUN; |
| 14 |
| 1 | |
| 2 | PROC CAS; |
| 3 | |
| 4 | SIMPLE.numRows / TABLE={name='medical_diagnosis', where='biomarker_B is null'}; |
| 5 | |
| 6 | RUN; |
| 7 |
| 1 | PROC CAS; |
| 2 | mlTools.crossValidate / |
| 3 | modelType='DECISIONTREE', |
| 4 | kFolds=3, |
| 5 | logLevel=3, |
| 6 | trainOptions={ |
| 7 | TABLE={name='medical_diagnosis'}, |
| 8 | target='disease', |
| 9 | inputs={'biomarker_A', 'biomarker_B'}, |
| 10 | nominals={'disease'} |
| 11 | }; |
| 12 | RUN; QUIT; |
A pesar de los valores nulos en 'biomarker_B', la acción debe finalizar correctamente (el árbol de decisión maneja nativamente los missing values). El log debe ser muy detallado (nivel 3), mostrando explícitamente el inicio y fin de cada uno de los 3 pliegues, permitiendo una auditoría completa del proceso.