评估评估者偏差,其中一位评估者给出了一个非常高的评级,而其余的评估者给出了非常低的评级

机器算法验证 可靠性 协议统计 偏见
2022-04-06 07:46:52

什么是一个好的统计测试来检查在有一名评委给出极端分数的情况下判断是否存在偏差(其中一名参赛者得分高,其余参赛者得分非常低)?以下是比赛中的实际数据:

                 contestant 1      contestant 2     contestant 3    contestant 4
judge 1            83.03               96.5             88.5           90.5
judge 2            67.15               89.9             85.36          89.85
judge 3            72.05               84.6             78.95          85
judge 4            86.95               93.3             88             94.1
judge 5            44                  65.15            52.45          96.05

非常感谢!

4个回答

概述

通常,当我想到多个评估者评估多个对象时,我认为“偏差”是特定法官的预期评分与假设的法官群体的平均值之间的平均差异。这是一个相当统计的偏见定义,它不一定对应于日常的偏见定义,这可能还包括未能公正地应用相关标准的概念。

基本思想

考虑到可能有关于这方面的既定文献,这些是我想到的想法:

  • 比较每位评委的 平均评分
    • 平均而言,给定的法官是更严厉还是更宽容?
  • 比较每位评委的 标准差或方差
    • 法官是否在预期范围内或以与其他法官一致的方式进行区分?
  • 对于每位评委,将该评委的评分与所有其他评委的平均值相关联,并将相关性用作该评委评分有效性的指标
    • 法官是否以与其他法官相同的方式识别质量?
  • 建立一个模型来预测评委 j 对选手 i 的评分并记录残差大的绝对残差可以从某些总体评级中排除。该模型可以像 ANOVA 一样简单,通过仅使用主效应(无交互效应)的法官 j 来预测参赛者 i 的响应。
    • 法官是否对特定参赛者做出反常的回应?

平均方法是我认为的偏见残差方法将捕获您感兴趣的内容。

R中的基本实现

我在几分钟内解决了这个问题,所以希望没有任何错误(但使用风险自负)。

# Import data
x <- structure(list(contestant = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L), judge = c(1L, 
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 
3L, 4L, 5L), rating = c(83.03, 67.15, 72.05, 86.95, 44, 96.5, 
89.9, 84.6, 93.3, 65.15, 88.5, 85.36, 78.95, 88, 52.45, 90.5, 
89.85, 85, 94.1, 96.05)), .Names = c("contestant", "judge", "rating"
), class = "data.frame", row.names = c(NA, -20L))

> # Mean: Judge's Mean rating - i.e., bias
round(tapply(x$rating, x$judge, function(X) mean(X)), 1)
   1    2    3    4    5 
89.6 83.1 80.2 90.6 64.4 

这表明法官 5 很严厉,也许法官 1 和 4 可能过于宽容。

> # SD: Judge's SD rating i.e., excessive or insufficient variability in ratings
round(tapply(x$rating, x$judge, function(X) sd(X)), 1)
   1    2    3    4    5 
 5.6 10.8  6.1  3.6 22.8 

这表明法官 5 的可变性要大得多,但同样,其他法官的可变性也有很大差异。

> # Correlation
judgecor <- list()
for (i in unique(x$judge)) {
      contestant_mean <- tapply(
      x[x$judge != i, "rating"], x[x$judge != i, "contestant"], 
      function(X) mean(X))
    judgecor[[as.character(i)]] <- cor(x[x$judge == i, "rating"], contestant_mean)
}
round(unlist(judgecor), 2)
   1    2    3    4    5 
0.70 0.84 0.96 0.95 0.73 

法官 1 和 5 与其他法官的一致性较差。

> # Residuals
fit <- lm(rating~factor(judge)+factor(contestant), x)
xres <- data.frame(x, res=residuals(fit))
xres$absres <- abs(xres$res)

# Overview of problematic ratings
head(xres[order(xres$absres, decreasing=TRUE), ], 5)

   contestant judge rating    res absres
20          4     5  96.05 22.107 22.107
5           1     5  44.00 -9.479  9.479
15          3     5  52.45 -9.045  9.045
16          4     1  90.50 -8.663  8.663
4           1     4  86.95  7.296  7.296

这显示了在剔除平均参赛者和平均评分者效应后,评分中最大的五个绝对残差。它清楚地表明,相对于其他残差,评委 5 对参赛者 4 的评分是一个极端异常值。

您可以使用评分者间的可靠性统计来衡量评委之间评分的一致性。这将告诉您评委对参赛者的评判是否一致。

可能有更复杂的方法可以做到这一点,但我可能会天真地尝试让五位评委中的每一个都退出,看看可靠性如何变化。

但是对于这么小的样本,我认为无论你做什么,你都不会得到特别有力的答案。

您将无法证明偏差,但您可以尝试使用 Dixon 的异常值检验来确定 96.05 是否为异常值。如果这些评委继续在另一个任务/领域评判这些相同的参赛者,您可以测试这个不寻常的结果对法官 5 和参赛者 4 的可复制性。

您可以将其视为对方差的测试。法官 5 的分数将获得更大的权重,因为分数的可变性更高。

该测试将用于两个方差的相等性。它在大多数介绍性统计书籍中,甚至在 Excel 中,它为法官 5 与法官 1-4 提供以下结果

方差的 F 检验两个样本

Variable 1  Variable 2

平均 64.4125 85.85875

方差 520.415625 60.13891833

意见 4 16

东风 3 15

F 8.653558119

P(F<=f) 一尾 0.001424952

F 临界一尾 3.287382105

这确实表明法官 5 比其他法官的可变性要大得多,但坦率地说,由于涉及“钓鱼”的数量,我会小心这样的结果。您正在研究这个事后,有几个可能的假设可用(刚开始,有法官 1 对 2、3、4、5 的等效测试,法官 2 对 1、3、4、5 等的等效测试.)

也有可能即使您正在观察某些东西,它也可能不是您的想法。您可能不会观察到对/反对参赛者的偏见,因为他们始终倾向于以不同的方式看待事物——有点像美国棒球中的裁判愿意叫高击球,各种投手倾向于使用/不使用高击球.

如果您有更多的比赛结果,您可以将评委 5(和其他人)与一些总体标准进行比较。这就绕过了这样一个事实,即只有少量的评委和评级样本(以及事后分析!)你无法真正超越怀疑水平。