assessBias
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.
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.
| 1 | DATA 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; |
| 12 | RUN; |
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.
| 1 | PROC 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"; |
| 11 | RUN; |
| 12 | QUIT; |
Résultat Attendu :
É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.
| 1 | PROC 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}; |
| 17 | RUN; |
| 18 | QUIT; |