fairAITools assessBias

Grenzfall-Tests für ein Modell zur Vorhersage von Krankenhauswiedereinweisungen mit fehlenden Daten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Krankenhaus analysiert ein Modell, das das Risiko einer Wiederaufnahme von Patienten vorhersagt. Der für das Training verwendete Datensatz weist bekannte Datenqualitätsprobleme auf, einschließlich fehlender Werte in der sensiblen Variable (`ETHNIE`) und anderen Prädiktoren. Dieser Test soll überprüfen, wie die Aktion `assessBias` mit diesen unvollständigen Daten umgeht.
Über das Set : fairAITools

Erkennung und Minderung von Verzerrungen in KI-Modellen.

Entdecken Sie alle Aktionen von fairAITools
Datenaufbereitung

Erstellt eine Tabelle `Patientendaten` mit 5.000 Zeilen. Die Zielvariable ist `WIEDEREINWEISUNG`. Die sensible Variable `ETHNIE` enthält absichtlich fehlende Werte ('.') für ca. 10% der Datensätze. Auch andere Prädiktoren wie `ALTER` und `BEHANDLUNGSDAUER` enthalten fehlende Werte.

Kopiert!
1DATA casuser.Patientendaten;
2call streaminit(789);
3DO PATIENT_ID = 1 to 5000;
4 IF rand('UNIFORM') < 0.1 THEN ETHNIE = ' ';
5 ELSE IF rand('UNIFORM') < 0.5 THEN ETHNIE = 'Gruppe_A';
6 ELSE IF rand('UNIFORM') < 0.85 THEN ETHNIE = 'Gruppe_B';
7 ELSE ETHNIE = 'Gruppe_C';
8 
9 IF rand('UNIFORM') < 0.05 THEN ALTER = .;
10 ELSE ALTER = 40 + int(rand('UNIFORM')*45);
11 
12 IF rand('UNIFORM') < 0.08 THEN BEHANDLUNGSDAUER = .;
13 ELSE BEHANDLUNGSDAUER = 1 + int(rand('UNIFORM')*20);
14 
15 score = -3 + (ALTER/20) + (BEHANDLUNGSDAUER/5);
16 IF ETHNIE = 'Gruppe_C' THEN score = score + 0.9;
17 
18 prob = 1 / (1 + exp(-score));
19 WIEDEREINWEISUNG = (rand('UNIFORM') < prob);
20 OUTPUT;
21END;
22RUN;

Étapes de réalisation

1
Training eines Entscheidungsbaummodells, das fehlende Werte verarbeiten kann.
Kopiert!
1PROC CAS;
2decisionTree.dtreeTrain
3 TABLE={name='Patientendaten'},
4 target='WIEDEREINWEISUNG',
5 inputs={'ALTER', 'BEHANDLUNGSDAUER'},
6 nominals={'ETHNIE', 'WIEDEREINWEISUNG'},
7 savestate={name='dt_patienten_model', replace=true};
8RUN;
2
Ausführung der Bias-Bewertung. Beobachtung, wie fehlende Werte in der sensiblen Variable behandelt werden.
Kopiert!
1PROC CAS;
2fairAITools.assessBias
3 TABLE={name='Patientendaten'},
4 response={'name'='WIEDEREINWEISUNG'},
5 sensitiveVariable={'name'='ETHNIE'},
6 modelTable={name='dt_patienten_model'},
7 predictedVariables={{name='P_WIEDEREINWEISUNG1'}, {name='P_WIEDEREINWEISUNG0'}},
8 responseLevels={'1', '0'},
9 event='1';
10RUN;
3
Generierung von Data-Step-Scoring-Code und erneute Ausführung der Bewertung mit modelTableType='DATASTEP'.
Kopiert!
1PROC CAS;
2decisionTree.dtreeCode
3 modelTable={name='dt_patienten_model'}
4 code={casout={name='dt_patienten_code', replace=true}};
5 
6fairAITools.assessBias
7 TABLE={name='Patientendaten'},
8 response={'name'='WIEDEREINWEISUNG'},
9 sensitiveVariable={'name'='ETHNIE'},
10 modelTable={name='dt_patienten_code'},
11 modelTableType='DATASTEP',
12 predictedVariables={{name='P_WIEDEREINWEISUNG1'}, {name='P_WIEDEREINWEISUNG0'}},
13 responseLevels={'1', '0'},
14 event='1';
15RUN;

Erwartetes Ergebnis


Die Aktion wird ohne Fehler ausgeführt. Die Analyse der Ergebnistabellen zeigt, dass die Datensätze mit fehlenden Werten in der `ETHNIE`-Variable als separate Gruppe ('_MISSING_') behandelt werden, was eine Analyse dieser Fälle ermöglicht. Der dritte Schritt, der `modelTableType='DATASTEP'` verwendet, wird ebenfalls erfolgreich ausgeführt und bestätigt, dass die Aktion mit verschiedenen Modellformaten umgehen kann, selbst bei unvollständigen Daten.