Scénario de test & Cas d'usage
Detección y mitigación de sesgos en modelos de IA.
Descubrir todas las acciones de fairAIToolsCrea una tabla de empleados con datos de rendimiento, antigüedad y etnia. Se introducen deliberadamente valores faltantes en la variable 'ETNIA' para simular un caso de datos imperfectos.
| 1 | DATA casuser.HR_DATA_INCOMPLETE; |
| 2 | LENGTH ETNIA $ 15; |
| 3 | call streaminit(789); |
| 4 | DO i = 1 to 1500; |
| 5 | ANTIGUEDAD = 1 + floor(rand('UNIFORM') * 15); |
| 6 | EVALUACION_2023 = 3 + floor(rand('UNIFORM') * 3); /* 3, 4, 5 */ |
| 7 | PROYECTOS_LIDERADOS = floor(rand('UNIFORM') * 5); |
| 8 | roll = rand('UNIFORM'); |
| 9 | IF roll < 0.1 THEN ETNIA = ''; /* Valor faltante */ |
| 10 | ELSE IF roll < 0.5 THEN ETNIA = 'Caucásico'; |
| 11 | ELSE IF roll < 0.8 THEN ETNIA = 'Asiático'; |
| 12 | ELSE ETNIA = 'Hispano'; |
| 13 | prob = 1 / (1 + exp(-( -3 + (ANTIGUEDAD/10) + (EVALUACION_2023/5) + PROYECTOS_LIDERADOS*0.2 + ifn(ETNIA='Caucásico', 0.1, -0.05) ))); |
| 14 | IF prob > 0.5 THEN PROMOVIDO = 1; ELSE PROMOVIDO = 0; |
| 15 | OUTPUT; |
| 16 | END; |
| 17 | RUN; |
| 1 | DATA casuser.HR_DATA_CLEANED; |
| 2 | SET casuser.HR_DATA_INCOMPLETE; |
| 3 | IF ETNIA = '' THEN ETNIA = 'Desconocido'; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | fairAITools.assessBias |
| 3 | TABLE={name='HR_DATA_CLEANED' caslib='CASUSER'}, |
| 4 | modelTableType='DATASTEP', |
| 5 | code='P_PROMO = 1 / (1 + exp(-( -3 + (ANTIGUEDAD/10) + (EVALUACION_2023/5) + PROYECTOS_LIDERADOS*0.2 )));', |
| 6 | response={name='PROMOVIDO'}, |
| 7 | sensitiveVariable={name='ETNIA'}, |
| 8 | predictedVariables={{name='P_PROMO'}}, |
| 9 | event='1', |
| 10 | referenceLevel='Caucásico', |
| 11 | cutoff=0.5, |
| 12 | scoredTable={name='HR_SCORED_RESULTS', replace=true}; |
| 13 | RUN; |
La acción debe ejecutar correctamente el código DATA Step para generar las predicciones y luego realizar la evaluación de sesgo. El informe resultante debe mostrar las métricas de equidad para todos los grupos étnicos, incluido el grupo 'Desconocido'. Esto valida la capacidad de la acción para integrarse con modelos DATA Step y la importancia del pre-procesamiento de datos para manejar casos límite como los valores faltantes.