fairAITools assessBias

Auditoría de Sesgo en Modelo de RRHH con Datos Incompletos y Modelo DATA Step

Scénario de test & Cas d'usage

Contexto empresarial

El departamento de Recursos Humanos quiere evaluar un modelo de regresión logística simple, definido por código DATA Step, que predice la probabilidad de promoción de un empleado. La preocupación es que el modelo pueda estar sesgado por la etnia del empleado. Los datos de origen son imperfectos y contienen valores faltantes en la variable de etnia.
Sobre el conjunto : fairAITools

Detección y mitigación de sesgos en modelos de IA.

Descubrir todas las acciones de fairAITools
Preparación de datos

Crea 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.

¡Copiado!
1DATA 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;
17RUN;

Étapes de réalisation

1
Pre-procesamiento de datos en CAS para manejar los valores faltantes en la variable sensible, agrupándolos en una categoría 'Desconocido'.
¡Copiado!
1DATA casuser.HR_DATA_CLEANED;
2 SET casuser.HR_DATA_INCOMPLETE;
3 IF ETNIA = '' THEN ETNIA = 'Desconocido';
4RUN;
2
Evaluación de sesgo utilizando el modelo definido como código DATA Step. La acción puntuará los datos y calculará el sesgo en una sola llamada.
¡Copiado!
1PROC 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};
13RUN;

Resultado esperado


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.