Python 多评分员数据的评分员间信度计算

Python 多评分员数据的评分员间信度计算,python,statistics,statsmodels,Python,Statistics,Statsmodels,我有以下清单: [[1, 1, 1, 1, 3, 0, 0, 1], [1, 1, 1, 1, 3, 0, 0, 1], [1, 1, 1, 1, 2, 0, 0, 1], [1, 1, 0, 2, 3, 1, 0, 1]] 在我要计算可靠性分数的地方,有多个RatersRow。我不能使用Fleiss的kappa,因为行的总和不相同。在这种情况下,什么是好的方法?这里的基本问题是您没有正确应用所提供的数据。有关正确的组织,请参阅。你有四个等级0-3和八个科目。因此,无论审阅者的数量如何,

我有以下清单:

[[1, 1, 1, 1, 3, 0, 0, 1],
 [1, 1, 1, 1, 3, 0, 0, 1],
 [1, 1, 1, 1, 2, 0, 0, 1],
 [1, 1, 0, 2, 3, 1, 0, 1]]

在我要计算可靠性分数的地方,有多个RatersRow。我不能使用Fleiss的kappa,因为行的总和不相同。在这种情况下,什么是好的方法?

这里的基本问题是您没有正确应用所提供的数据。有关正确的组织,请参阅。你有四个等级0-3和八个科目。因此,无论审阅者的数量如何,表必须有八行四列。例如,第一行是第一个项目的评分记录:

[0, 4, 0, 0]   ... since everyone rated it a `1`.
您的-inf值是在倒数第二列的p[j]分数上除以0得到的

我先前的答案是将分数标准化,这是基于我对弗莱斯的误解;我有一个不同的想法。 有很多方法可以计算这样的度量;一个是相对评分点的一致性,可以通过标准化得到;另一种方法是将每个评分员的行转换为相对排名图,并计算这些图之间的相似度


请注意,Fleiss并不完全适用于具有相对度量的情况:它假设这是一项分类任务,而不是排名。弗莱斯对评级之间的差距并不敏感;它只知道评级不同:0,1配对和0,3配对一样有害。

这个问题的答案是使用krippendorff alpha评分:


通过statsmodels.stats.inter_rater.fleiss_kappa运行此测试得到的分数为-inf,您知道出了什么问题吗?是的,您仍然需要预处理数据。我只给了你一个小小的缩放;你仍然需要处理零评级的情况:当j=6时,P[j]的分母为0.00。我有类似的情况,我想确保我正确理解你的数据表示。这里每一行代表一个评分员的分数,对吗?例如,第一行[1,1,1,1,3,0,0,1]代表第一评级者。这就是我的确切情况。是的。因此,解决方案在您的情况下也应该有效!
import krippendorff

arr = [[1, 1, 1, 1, 3, 0, 0, 1],
       [1, 1, 1, 1, 3, 0, 0, 1],
       [1, 1, 1, 1, 2, 0, 0, 1],
       [1, 1, 0, 2, 3, 1, 0, 1]]    
res = krippendorff.alpha(arr)