Saltar al contenido

Referencia de Métricas

Venturalitica incluye más de 35 métricas organizadas en 7 categorías. Cada métrica está registrada en METRIC_REGISTRY y puede ser referenciada por su clave en archivos de política OSCAL.


CategoríaMétricasDescripción
Rendimiento4Accuracy, precision, recall y F1 estándar de ML
Equidad (Tradicional)2Paridad demográfica, igualdad de oportunidad
Equidad (Alternativa)2Probabilidades igualadas, paridad predictiva
Equidad Multiclase7Métricas de equidad para clasificación multiclase
Calidad de Datos4Impacto dispar, desequilibrio de clases, completitud
Privacidad4k-anonymity, l-diversity, t-closeness, minimización de datos
Equidad Causal4Contrafactual, descomposición de caminos, awareness

Clave de RegistroFunciónDescripción
accuracy_scorecalc_accuracyPrecisión general de clasificación
precision_scorecalc_precisionValor predictivo positivo
recall_scorecalc_recallSensibilidad / tasa de verdaderos positivos
f1_scorecalc_f1Media armónica de precisión y recall

Uso en política:

- control-id: model-accuracy
props:
- name: metric_key
value: accuracy_score
- name: threshold
value: "0.80"
- name: operator
value: ">="

Estas son las medidas de equidad más utilizadas para clasificación binaria.

Mide la diferencia en tasas de predicción positiva entre grupos protegidos.

  • Fórmula: |P(Y=1|A=a) - P(Y=1|A=b)|
  • Valor ideal: 0.0
  • Umbral típico: < 0.10
  • Requiere: dimension (columna del atributo protegido)

Mide la diferencia en tasas de verdaderos positivos (TPR) entre grupos.

  • Fórmula: |TPR_a - TPR_b|
  • Valor ideal: 0.0
  • Umbral típico: < 0.10
  • Requiere: dimension, target, prediction

Asegura que tanto TPR como FPR sean iguales entre grupos. Más estricta que la igualdad de oportunidad.

  • Fórmula: |TPR_a - TPR_b| + |FPR_a - FPR_b|
  • Valor ideal: 0.0
  • Umbral típico: < 0.20
  • Requiere: dimension, target, prediction
  • Referencia: Hardt et al. 2016

Mide la igualdad de precisión entre grupos. Cuando se emite una predicción positiva, debe ser igualmente fiable independientemente de la pertenencia al grupo.

  • Fórmula: |Precision_a - Precision_b|
  • Valor ideal: 0.0
  • Umbral típico: < 0.10
  • Requiere: dimension, target, prediction
  • Referencia: Corbett-Davies et al. 2017

Para tareas de clasificación multiclase. Consulta Equidad Multiclase para uso detallado.

Clave de RegistroDescripción
multiclass_demographic_parityParidad demográfica extendida a multiclase
multiclass_equal_opportunityIgualdad de oportunidad por clase
multiclass_confusion_metricsAnálisis de matriz de confusión por grupo
weighted_demographic_parity_multiclassParidad demográfica ponderada por clase
macro_equal_opportunity_multiclassIgualdad de oportunidad promediada macro
micro_equalized_odds_multiclassProbabilidades igualadas promediadas micro
predictive_parity_multiclassParidad predictiva por clase

Clave de RegistroDescripciónUmbral Típico
disparate_impactRatio de la Regla de los Cuatro Quintos entre grupos> 0.80
class_imbalanceProporción de la clase minoritaria> 0.20
group_min_positive_rateTasa positiva mínima entre grupos> 0.10
data_completenessProporción de valores no nulos> 0.95

Ejemplo de uso (escenario de préstamos):

- control-id: credit-data-bias
description: "Disparate impact ratio must satisfy the Four-Fifths Rule"
props:
- name: metric_key
value: disparate_impact
- name: "input:dimension"
value: gender
- name: operator
value: ">"
- name: threshold
value: "0.8"

Medidas de privacidad alineadas con el RGPD desde venturalitica.assurance.privacy.

Tamaño mínimo de grupo cuando se conocen los cuasi-identificadores. Previene la re-identificación.

  • Fórmula: min(|group|) donde los grupos se definen por cuasi-identificadores
  • Valor ideal: >= 5 (recomendación RGPD)
  • Requiere: columnas de cuasi-identificadores
from venturalitica.metrics.privacy import calc_k_anonymity
k = calc_k_anonymity(df, quasi_identifiers=["age", "gender", "zipcode"])
assert k >= 5, "GDPR recommends k >= 5"

Mínimo de valores distintos de un atributo sensible por grupo de cuasi-identificadores.

  • Fórmula: min(valores distintos en sensitive_attribute por grupo QI)
  • Valor ideal: >= 2

Diferencia máxima de distribución entre grupos usando la Distancia del Transporte de Tierra (Earth Mover Distance).

  • Fórmula: max(EMD entre distribuciones de grupo)
  • Valor ideal: < 0.15
  • Referencia: Li et al. 2007

Cumplimiento del Artículo 5 del RGPD — proporción de columnas no sensibles.

  • Fórmula: (total_columns - sensitive_columns) / total_columns
  • Valor ideal: >= 0.70
from venturalitica.metrics.privacy import calc_data_minimization_score
score = calc_data_minimization_score(
df,
sensitive_columns=["age", "income", "health_status"]
)

Métricas avanzadas desde venturalitica.assurance.causal.

Clave de RegistroDescripción
path_decompositionDescompone caminos causales para identificar discriminación directa vs indirecta
counterfactual_fairnessPrueba si cambiar un atributo protegido cambiaría el resultado
fairness_through_awarenessAsegura que individuos similares reciban predicciones similares
causal_fairness_diagnosticDiagnóstico integral combinando múltiples pruebas causales

Estos son alias de conveniencia que usan calc_mean internamente:

Clave de RegistroCaso de Uso
bias_scorePuntuación general de sesgo para salidas de LLM
stereotype_preference_rateDetección de estereotipos en texto generado
category_bias_scoreSesgo por categoría en evaluaciones de benchmarks

Métricas especializadas para análisis de reportes ESG:

Clave de RegistroDescripción
classification_distributionDistribución de clasificaciones ESG
report_coverageCobertura de requisitos de reporte
provenance_completenessCompletitud de la cadena de procedencia de datos
chunk_diversityDiversidad de fragmentos de texto en Pipeline RAG
subtitle_diversityDiversidad de encabezados de sección en reportes

Diferentes métricas capturan distintos conceptos de equidad, ordenados por nivel de exigencia:

Demographic Parity (menos estricta)
| Mismas tasas de aprobacion entre grupos
v
Equal Opportunity (media)
| Mismo TPR entre grupos
v
Equalized Odds (mas estricta)
| Mismo TPR Y FPR entre grupos
v
Predictive Parity (ortogonal)
Misma precision entre grupos

En la práctica, un sistema puede aprobar la paridad demográfica y al mismo tiempo fallar en probabilidades igualadas. Elige las métricas alineadas con tu contexto de riesgo:

  • Crédito / Contratación: Equalized odds + predictive parity
  • Salud: Equalized odds + métricas de privacidad (k-anonymity >= 5)
  • Auditoría integral: Todas las métricas en conjunto

Cada métrica puede ser referenciada en una política OSCAL a través de la propiedad metric_key:

assessment-plan:
metadata:
title: "Custom Fairness Policy"
control-implementations:
- description: "Fairness Controls"
implemented-requirements:
- control-id: my-check
props:
- name: metric_key
value: equalized_odds_ratio # <-- Registry key
- name: threshold
value: "0.20"
- name: operator
value: "<"
- name: "input:dimension"
value: gender # <-- Protected attribute

Consulta la Guía de Autoría de Políticas para la referencia completa del formato OSCAL.


Para registrar una nueva métrica:

  1. Crea la función en el módulo correspondiente bajo venturalitica/assurance/:

    def calc_my_metric(df, **kwargs) -> float:
    # Validate inputs
    if "dimension" not in kwargs:
    raise ValueError("Missing 'dimension' parameter")
    # Calculate and return
    return value
  2. Regístrala en venturalitica/metrics/__init__.py:

    METRIC_REGISTRY["my_metric"] = calc_my_metric
  3. Úsala en tu política OSCAL a través de metric_key: my_metric.