Probability

Palantir 的亞洲歧視案例:概率是如何計算的?

  • September 27, 2016

我讀了這篇關於 Palantir 案的文章,其中勞工部指控他們歧視亞洲人。有誰知道他們從哪裡得到這些概率估計?

我在 (a) 項中沒有得到 1/741。

(a) 對於 QA 工程師職位,Palantir 從 730 多名合格的申請人(其中約 77% 是亞洲人)中聘用了 6 名非亞洲申請人和僅 1 名亞洲申請人。OFCCP 計算的不利影響超過三個標準差。這個結果是偶然發生的可能性大約是 741 分之一。

(b) 對於軟件工程師職位,Palantir 從 1,160 多名合格的應聘者中(其中約 85% 是亞洲人)聘用了 14 名非亞洲應聘者和僅 11 名亞洲應聘者。OFCCP 計算的不利影響超過五個標準差。這一結果是偶然發生的可能性約為 340 萬分之一。

(c) 對於 QA Engineer Intern 職位,Palantir 從 130 多名合格的申請人中(其中大約 73% 是亞洲人)聘用了 17 名非亞洲申請人,而只有 4 名亞洲申請人。OFCCP 計算的不利影響超過六個標準差。這個結果是偶然發生的可能性大約是十億分之一。

我將從歧視案件的經驗中對此進行逆向工程。我絕對可以確定“741 中的一個”等值的來源。然而,在翻譯過程中丟失了太多信息,以至於我的其餘重建依賴於看到人們如何在法庭環境中進行統計。我只能猜測一些細節。


自 1960 年代通過反歧視法(標題 VI)以來,美國的法院已經學會查看 p 值並將其與閾值進行比較和. 他們還學會了查看標準化效應,通常稱為“標準差”,並將它們與“兩到三個標準差”的閾值進行比較。為了確立歧視訴訟的*表面證據,原告通常會嘗試進行統計計算,顯示超過這些閾值的“不同影響”。*如果不能支持這樣的計算,案件通常無法推進。

原告的統計專家經常試圖用這些熟悉的術語來表達他們的結果。一些專家進行了一項統計檢驗,其中零假設表示“沒有不利影響”,假設僱傭決定純粹是隨機的,不受員工任何其他特徵的影響。(它是單尾還是雙尾替代方案可能取決於專家和情況。)然後他們將此測試的 p 值轉換為許多“標準偏差”,方法是將其引用到標準正態分佈 - -即使標準 Normal 與原始測試無關。 他們希望通過這種迂迴的方式將自己的結論清楚地傳達給法官。

可以在列聯表中總結的數據的首選檢驗是 Fisher 精確檢驗。在其名稱中出現“Exact”特別令原告滿意,因為它意味著已做出無錯誤的統計確定(無論可能是什麼!)。

那麼,這就是我對勞工部計算的(推測性重建)。

  1. 他們運行了 Fisher 的精確檢驗,或類似的東西(例如使用通過隨機化確定的 p 值進行測試)。該測試假設 Matthew Gunn 的回答中描述的超幾何分佈。(對於涉及此投訴的少數人,超幾何分佈不能很好地近似為正態分佈。)
  2. 他們將其 p 值轉換為正常的 Z 分數(“標準偏差數”)。
  3. 他們將 Z 分數四捨五入到最接近的整數:“超過三個標準偏差”、“超過五個標準偏差”和“超過六個標準偏差”。(因為這些 Z 分數中的一些四捨五入更多的標準偏差,我不能證明“超過”是合理的;我所能做的就是引用它。)
  4. 在投訴中,這些積分 Z 分數被轉換回 p 值!再次使用標準正態分佈。
  5. 這些 p 值被描述為(可以說是以一種誤導的方式)“這個結果是偶然發生的可能性”。

為了支持這種推測,請注意,在三個實例中,Fisher 精確檢驗的 p 值大約為,, 和. 這些是基於假設池,, 和對應於“超過”,, 和, 分別。這些數字的正常 Z 分數為,, 和,四捨五入時分別是三個、五個和六個標準差,正是投訴中出現的數字。它們對應於(單尾)正態 p 值,, 和:正是投訴中引用的價值觀。


這是一些R用於執行這些計算的代碼。

f <- function(total, percent.asian, hired.asian, hired.non.asian) {
 asian <- round(percent.asian/100 * total)
 non.asian <- total-asian
 x <- matrix(c(asian-hired.asian, non.asian-hired.non.asian, hired.asian, hired.non.asian),
             nrow = 2,
             dimnames=list(Race=c("Asian", "non-Asian"),
                           Status=c("Not hired", "Hired")))
 s <- fisher.test(x)
 s$p.value
}
1/pnorm(round(qnorm(f(730, 77, 1, 6))))
1/pnorm(round(qnorm(f(1160, 85, 11, 14))))
1/pnorm(round(qnorm(f(130, 73, 4, 17))))

引用自:https://stats.stackexchange.com/questions/237086

comments powered by Disqus