Saltar al contenido

Guías

Equidad entre grupos

Un modelo puede superar su umbral de precisión en cada grupo y aun así ser más duro con uno de ellos: el doble de falsos negativos, o la mitad de selecciones. oloproof fairness lee un archivo de casos decididos y pregunta cuánto se separan los grupos. Responde con los mismos cuatro estados que cualquier otra regla. El método de paridad fue admitido por una auditoría independiente el 3 de noviembre de 2026, en los términos que esta página establece: casos independientes, grupos declarados primero, cada regla sobre los casos donde sus atributos están registrados, y paridad medida frente a sus etiquetas.

El archivo y la declaración

Un archivo CSV o JSONL con una fila por caso: un id, la etiqueta (0 o 1), la predicción (0 o 1, vacía cuando el sistema no dio ninguna), opcionalmente una probabilidad, y una columna por atributo protegido.

fairness:
  name: loan-screen
  cases: decided.csv
  label: label
  prediction: prediction
  probability: score
  attributes:
    sex: [female, male]
    age_band: [under_30, 30_to_60, over_60]
  intersections:
    - [sex, age_band]
  min_cell: 30
  rules:
    - {id: fnr-by-sex, rate: false_negative, attribute: sex, max_group_gap: 0.05}
    - {id: fnr-crossed, rate: false_negative, attribute: [sex, age_band], max_group_gap: 0.10}
oloproof fairness fairness.yaml --policy release.yaml --json

El intervalo supone que cada caso es una persona distinta. Nombre la columna que identifica a la persona con unit: person_id y se rechaza un archivo en el que una persona tiene varios casos; sin ella, la respuesta enuncia el supuesto.

La tasa es una de error, false_positive (sobre los casos etiquetados 0), false_negative (sobre los casos etiquetados 1) o selection (predicho 1, sobre todos los casos). Nombre los grupos antes de leer el archivo. Cada regla lee solo los casos cuyos propios atributos están registrados con un valor declarado; un caso al que le falta un atributo queda fuera de las reglas que lo usan y se conserva en las demás, y cada respuesta cuenta lo que dejó fuera y por qué. Cuando un atributo falta más a menudo para unas personas que para otras, la respuesta trata de los casos donde está registrado, que son otra población: lea el recuento antes del veredicto. Una regla que deja fuera más de max_left_out del archivo (10 % por defecto; fíjelo en la regla) se lee INSUFFICIENT_EVIDENCE, porque los casos registrados pueden dejar de representar al resto. El código de salida es el de la peor regla: 0 PASS, 1 FAIL, 3 INSUFFICIENT_EVIDENCE, 4 MANUAL_REVIEW.

Cómo decide

La tasa de cada grupo recibe el intervalo exacto que Oloproof usa para una tasa, con el presupuesto de error dividido por el número de grupos declarados. Cada diferencia entre dos grupos se acota a partir de esos intervalos, todas a la vez, de modo que ningún par necesita su propia corrección. Una regla max_group_gap pasa cuando el extremo superior de cada brecha está en el umbral o por debajo, y falla cuando alguna brecha está por encima del umbral con todo su intervalo. Una predicción ausente se queda en su grupo y se cuenta en su peor caso.

Grupos pequeños y grupos cruzados

Cruzar dos atributos multiplica las celdas, y algunas serán pequeñas. Una celda con menos casos con predicción que min_cell (los casos cuya predicción falta no cuentan para ello) se informa como INSUFFICIENT_EVIDENCE en su propia línea, sigue contando en la división e impide que la regla pase, porque la mayor brecha podría estar ahí. Reúna más casos para esa celda, o declare un cruce más grueso antes de la ejecución.

Pisos y brechas

Use worst_group para un piso que cada grupo debe superar («cada región resuelve al menos el 80 %»), y max_group_gap para un techo sobre la distancia entre grupos («los falsos negativos difieren en cinco puntos como máximo»). Un requisito de gobernanza de resultados no sesgados se evidencia en parte con la brecha, para la tasa que eligió; un requisito de que cada grupo esté bien atendido, con el piso. Ninguno por sí solo muestra que un sistema es justo. La mayoría de los sistemas necesitan ambos.

Calibración por grupo

Con una columna de probabilidad, el error de calibración esperado de cada grupo se informa para cada atributo y cada cruce declarado, sobre calibration_bins intervalos de probabilidad de igual ancho (10 por defecto). Nunca decide la compuerta: ningún método admitido lo acota, y en un grupo pequeño es ruidoso.

Lo que esto no puede decirle

  • Qué tasa es la justa para igualar: es su decisión, y conviene registrarla junto con los atributos que eligió.
  • Nada sobre grupos que no declaró, ni sobre personas contadas dos veces (una persona, varios casos).
  • Si la calibración difiere entre grupos más de lo que explica el azar.
  • Si las propias etiquetas están sesgadas: la paridad se mide contra las etiquetas que usted aporta.