fairAITools

assessBias

##set_fairaitools

Description

L'action assessBias (issue du jeu d'actions fairAIToolsAction set de SAS Viya dédiée à l'équité en IA. Elle permet de détecter et d'atténuer les biais algorithmiques dans les modèles afin de garantir des décisions justes et éthiques.) calcule les métriques de biais pour évaluer l'équité des modèles prédictifsAlgorithmes entraînés sur SAS Viya pour analyser des données historiques et estimer la probabilité de résultats futurs, facilitant ainsi la prise de décision proactive et automatisée. . En d'autres termes, elle joue les arbitres impartiaux pour s'assurer que votre modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). d'IA ne fait pas de favoritisme ! Elle prend en entrée les prédictions du modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). et les croise avec une variable sensible (comme le genre, l'ethnie ou l'âge) pour calculer des statistiques avancées telles que la parité démographique, l'égalité des chances, et le disparate impact.

Syntaxe Officielle
proc cas;
fairAITools.assessBias /
table={name="nom_table_entree"}
modelTable={name="nom_table_modele"}
modelTableType="ASTORE" /* ou DATASTEP, ou NONE */
predictedVariables={{name="var_predite_1"}, {name="var_predite_2"}}
response={name="var_cible"}
responseLevels={"niveau_1", "niveau_2"}
event="niveau_1"
sensitiveVariable={name="var_sensible"}
referenceLevel="niveau_reference"
cutoff=0.5
nBins=20
rocStep=0.05
scoredTable={name="table_sortie", replace=true};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table de données d'entrée contenant les données à évaluer.
modelTable Spécifie la table contenant le modèle à expliquer. Cette table doit contenir un Analytic Store (ASTORE) ou du code de scoring DATA step.
modelTableType Indique le type de scoring que contient la table du modèle ('ASTORE', 'DATASTEP' ou 'NONE'). Par défaut, c'est 'ASTORE'.
predictedVariables Liste des variables contenant les prédictions du modèle. L'ordre doit correspondre à celui de responseLevels.
response La variable cible (ou de réponse) réelle.
responseLevels Liste des valeurs formatées de la variable cible. Si le paramètre event est omis, la première valeur est considérée comme l'événement cible.
sensitiveVariable La variable sensible (ex: genre, origine) sur laquelle on veut mesurer le biais. C'est le cœur de l'audit d'équité !
referenceLevel Le niveau de référence de la variable sensible utilisé pour comparer les métriques (ex: 'Homme' pour vérifier s'il y a un biais contre les autres genres).
cutoff Le seuil de probabilité pour déterminer la classification dans la matrice de confusion (par défaut 0.5).
scoredTable Spécifie la table de sortie où seront sauvegardés les résultats scorés pour une analyse approfondie.

Préparation des données

Création d'un jeu de données factice d'approbation de crédit

Nous générons une table contenant des individus, une variable sensible 'Genre', une cible réelle 'Accord_Credit' et une probabilité prédite 'Prob_Accord' montrant un léger biais artificiel.

1DATA mycas.donnees_credit;
2 call streaminit(123);
3 DO id = 1 to 2000;
4 IF rand('uniform') > 0.4 THEN Genre = 'Femme'; ELSE Genre = 'Homme';
5 IF Genre = 'Homme' THEN Prob_Accord = rand('normal', 0.65, 0.15);
6 ELSE Prob_Accord = rand('normal', 0.55, 0.15);
7 IF Prob_Accord > 1 THEN Prob_Accord = 1;
8 IF Prob_Accord < 0 THEN Prob_Accord = 0;
9 Accord_Credit = ifc(rand('uniform') < Prob_Accord, 'Oui', 'Non');
10 OUTPUT;
11 END;
12RUN;

Exemples d'utilisation

Évaluation simple des biais sans modèle fourni (prédictions existantes)

Cet exemple évalue les biais directement à partir des prédictions déjà présentes dans la table, sans avoir besoin d'un modèle ASTORE. L'option modelTableType="NONE" est idéale pour cela.

1PROC CAS;
2 fairAITools.assessBias /
3 TABLE={name="donnees_credit"}
4 modelTableType="NONE"
5 predictedVariables={{name="Prob_Accord"}}
6 response={name="Accord_Credit"}
7 responseLevels={"Oui", "Non"}
8 event="Oui"
9 sensitiveVariable={name="Genre"}
10 referenceLevel="Homme";
11RUN;
12QUIT;
Résultat Attendu :
L'action va afficher plusieurs tables de résultats mettant en évidence l'écart des taux d'acceptation entre les hommes et les femmes (ex: Parité Démographique, Différence d'Égalité des Chances).
Évaluation exhaustive avec table de scoring et personnalisation des seuils

Ici, on suppose que l'on dispose d'un modèle (modele_credit_astore). On génère également une table de sortie contenant les statistiques détaillées en modifiant les seuils ROC et la profondeur de sélection.

1PROC CAS;
2 fairAITools.assessBias /
3 TABLE={name="donnees_credit"}
4 modelTable={name="modele_credit_astore"}
5 modelTableType="ASTORE"
6 predictedVariables={{name="P_Accord_CreditOui"}, {name="P_Accord_CreditNon"}}
7 response={name="Accord_Credit"}
8 responseLevels={"Oui", "Non"}
9 event="Oui"
10 sensitiveVariable={name="Genre"}
11 referenceLevel="Homme"
12 cutoff=0.6
13 nBins=20
14 rocStep=0.05
15 selectionDepth=10
16 scoredTable={name="resultats_biais_credit", replace=true};
17RUN;
18QUIT;
Résultat Attendu :
Le système exécute le modèle via ASTORE, applique le seuil de 0.6 pour la matrice de confusion, et calcule l'impact disparate et d'autres métriques à la profondeur des 10% supérieurs. La table 'resultats_biais_credit' est sauvegardée pour des visualisations dans SAS Visual Analytics.