如何用python计算类内相关系数
类内相关系数(ICC) 用于确定不同评分者是否可以对项目或主题进行可靠评分。
ICC 的值范围为 0 到 1,其中 0 表示评分者没有可靠性,1 表示完全可靠性。
在Python中计算ICC的最简单方法是使用penguin统计包中的penguin.intraclass_corr()函数,该函数使用以下语法:
pengouin.intraclass_corr(数据,目标,评估者,成绩)
金子:
- data:数据框的名称
- 目标:包含“目标”的列的名称(要注意的事项)
- 审阅者:包含审阅者的列的名称
- 注释:包含注释的列的名称
本教程提供了使用此功能的实际示例。
第1步:安装企鹅
首先,你需要安装企鹅:
pip install penguin
第 2 步:创建数据
假设要求四位不同的法官评估六次不同的高考质量。我们可以创建以下数据框来保存评委的分数:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' exam ': [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6],
' judge ': ['A', 'A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C', 'C', 'C',
'D', 'D', 'D', 'D', 'D', 'D'],
' rating ': [1, 1, 3, 6, 6, 7, 2, 3, 8, 4, 5, 5,
0, 4, 1, 5, 5, 6, 1, 2, 3, 3, 6, 4]})
#view first five rows of DataFrame
df. head ()
exam judge rating
0 1 A 1
1 2 A 1
2 3 A 3
3 4 To 6
4 5 A 6
步骤3:计算类内相关系数
接下来,我们将使用以下代码来计算类内相关系数:
import penguin as pg icc = pg. intraclass_corr (data=df, targets=' exam ', raters=' judge ', ratings=' rating ') icc. set_index (' Type ') Description ICC F df1 df2 pval CI95% Kind ICC1 Single raters absolute 0.505252 5.084916 5 18 0.004430 [0.11, 0.89] ICC2 Single random raters 0.503054 4.909385 5 15 0.007352 [0.1, 0.89] ICC3 Single fixed raters 0.494272 4.909385 5 15 0.007352 [0.09, 0.88] ICC1k Average raters absolute 0.803340 5.084916 5 18 0.004430 [0.33, 0.97] ICC2k Average random raters 0.801947 4.909385 5 15 0.007352 [0.31, 0.97] ICC3k Average fixed raters 0.796309 4.909385 5 15 0.007352 [0.27, 0.97]
该函数返回以下结果:
- 说明:计算的ICC类型
- ICC:组内相关系数 (ICC)
- F: ICC的F值
- df1、df2:与值 F 相关的自由度
- pval:与F值相关的p值
- CI95%: ICC 的 95% 置信区间
请注意,此处计算了六种不同的 ICC。事实上,基于以下假设,有多种方法可以计算 ICC:
- 模型:单向随机效应、双向随机效应或双向混合效应
- 关系类型:一致性或绝对一致
- 单位:单个评估者或评估者的平均值
有关这些假设的详细解释,请参阅这篇文章。