Fairness messen - Eine Einführung

Fairness messen - Eine Einführung

In meinem letzten Blogpost, Data Science - Hip, cool, und sinnvoll. Eine kurze Einführung., haben wir mit Hilfe des Chi-Quadrat-Tests den Gender Gap in einem fiktiven Fachgebiet untersucht.

Dabei haben wir im Prinzip eine Fairness-Untersuchung gemacht. Wir haben untersucht, ob die Situation “momentane Beschäftigung” für die Eigenschaft “Geschlecht” als fair betrachtet werden kann. Wir hätten Fairness jedoch auch relativ zur Eigenschaft “sozio-ökonomischer Hintergrund”, “Muttersprache” oder “Alter” (und so weiter) oder zur Situation “Neueinstellungen”, “Bewerbungen im letzten Jahr”, “momentaner Bildungsstand”, “Jahre Berufserfahrung” (und so weiter) definieren können.

Es gibt also viele mögliche Definitionen für Fairness. Fairness ist immer situationsabhängig und relativ zu einer festgelegten Eigenschaft. Wenn ich Fairness untersuchen möchte, muss ich also erst eine Situation und eine Eigenschaft auswählen.

Als wir den Gender Gap in einem fiktiven Fachgebiet untersucht haben, haben wir das Chi-Quadrat als eine Metrik für Fairness verwendet. Je kleiner das Chi-Quadrat, desto kleiner der Unterschied in der Anzahl der Beschäftigten, desto größer die Fairness.

Es gibt jedoch weitere Möglichkeiten, Fairness zu messen, wenn mehr Daten zur Verfügung stehen. Im folgenden benutzen wir exemplarisch die Fairness-Metrik der Statistischen Parität.

Das Beispiel, das wir hier durchrechnen, wird auch in diesem Colab vorgeführt und erhält noch mehr Details zu den Berechnungen.

Nehmen wir an, wir arbeiten für die HR-Abteilung einer großen Firma. Die HR-Abteilung möchte überprüfen, ob sie in ihrem Einstellungsverfahren faire Entscheidungen gegenüber Personen aller Altersgruppen getroffen hat, oder ob es Verbesserungsbedarf gibt. Wir erhalten eine Liste davon, wieviele Personen, die sich im Jahr 2019 auf eine Anstellung bei uns beworben haben, welcher Altersgruppe zugehörig sind und wieviele hiervon in ihrer Bewerbung erfolgreich waren.

Altersgruppe Anzahl gesamt Anzahl erfolgreich
Unter 30 1500 100
30 - 50 2500 150
Über 50 800 20
Gesamt 4800 270

Die “Statistische Parität”, die wir berechnen wollen, misst, ob die Wahrscheinlichkeit, eingestellt zu werden, für Personen aller Altersgruppen gleich ist. Mathematisch können wir das mit der Schreibweise P(E|B) ausdrücken, was soviel heißt wie “Die Wahrscheinlichkeit P für das Ergebnis E unter der Bedingung B” (Siehe auch Bedingte Wahrscheinlichkeit):

P(E|B) berechnen wir mit der Formel P(E und B) / P(E). Die Wahrscheinlichkeit ist der relative Anteil am Ganzen.

Im folgenden rechne ich die Wahrscheinlichkeit P(E = "eingestellt"|B = "Unter 30") Schritt für Schritt aus. Das Ergebnis runde ich grob.

P(E = "eingestellt"|B = "Unter 30")
= P(E = "eingestellt" und B = "Unter 30") / P (B = "Unter 30")
= (100 / 4800) / (1500 / 4800)
= 0.067

Also ist die Wahrscheinlichkeit, eingestellt zu werden, unter der Bedingung, dass man in unter 30 Jahre alt ist, 7%. Jetzt müssen wir prüfen, ob die Wahrscheinlichkeiten, eingestellt zu werden, für die anderen Altersgruppen ähnlich sind. Die anderen Wahrscheinlichkeiten sind ausgerechnet:

Sind die Unterschiede der Wahrscheinlichkeiten signifikant und kann man deshalb auf eine unfaire Behandlung bestimmter Altersgruppen schließen?

Hierfür führen wir einen Hypothesentest aus, wie auch schon im vorherigen Blogpost.

Wir nutzen diesmal nicht Chi-Quadrat. Dieser ist nämlich in unserem Fall nicht gut geeignet, denn wir wissen nicht, wieviele angenommenen Bewerbungen wir pro Altersgruppe erwarten müssen. Stattdessen nutzen wir Welch’s t-test aus Python’s SciPy Bibliothek. Dieser vergleicht den durchschnittlichen Erfolg zweier Altersgruppen und gibt eine Teststatistik t und eine p-value p zurück, die wir dann mit unserem selbstdefinierten Signifikanzniveau Alpha vergleichen. Den Test müssen wir dreimal durchführen, um jede Altersgruppe mit jeder zu vergleichen.

Die Nullhypothese ist jeweils: Der mittlere Erfolg der beiden Altersgruppen ist nicht signifikant unterschiedlich. Die alternative Hypothese ist jeweils: Der mittlere Erfolg der beiden Altersgruppen ist signifikant unterschiedlich.

Falls wir die Nullhypothese verwerfen können gilt: Ist die Teststatistik t positiv, so ist die erste eingegebene Gruppe erfolgreicher als die zweite Gruppe. Ist die Teststatistik t negativ, gilt das umgekehrte.

Bei einem Signifikanzniveu Alpha von 0.01 (“Bei einem in 100 Tests wird die Nullhypothese zu unrecht verworfen”) erhalten wir folgende Ergebnisse:

Ausführliche Details können im Colab zu diesem Post gefunden werden.

Wir können also folgendes schlussfolgern:

Wie man die Fairness einer API messen kann, die einem Namen ein “Geschlecht” oder eine “Ethnie” zuweist, habe ich im Sommersemester 2020 in meinem Independent Coursework im Rahmen meines Masterstudiums untersucht. Der Bericht und der Code sind auf GitHub verfügbar.