ICC分析的R实现

intraclass correlation coefficient (ICC)中文叫做同类相关系数。为什么要做icc呢。比如在标注的过程中,我们要衡量这个人标注的怎么样,我们可以这样做:
1.从总体样本中选择N个样本。每一个样本都由两个人标注,然后检查两个人标注的差别有多大。
2.还是N个样本,一个人标注完了,第二天再让他标注一次,检查两次标注的差别有多大。
上面1过程就是组间差异性,2就是组内差异性。icc可以用来衡量这种差异性。
计算公式如下,比较复杂

这个过程可以用R语言实现。
工具包:irr
函数:icc

  selected <- feature_1[feature_1$id %in% feature_3$id,]#获取id相同的样本
  for (i in 2:Len){#len是特征的数量,我这里的第一列是id号,所以从第二列开始循环
    ratings <- cbind(selected[,i],feature_3[,i])#这个可以查看icc的函数说明,就是拿出两列,进行特征的icc计算
    icc <- icc(ratings, model = "twoway", 
               type = "agreement", 
               unit = "single", r0 = 0, conf.level = 0.95)
    icc_val[i] <- icc$value
  }
  Index <- which(icc_val > thr)


这里主要的讲一下icc函数type这个参数和model这个参数。
unit 有single和mean

在这里插入图片描述
这两段话说的是,如果我们最后使用的值是所有评价者评分的平均数,那么就使用mean
如果我们使用的是这么多个评分者其中一个的评分的话,就是single

type有consistency和agreement两个选项。

QQ截图20150205143417.jpg

在这里插入图片描述

agreement考虑的是不同的评分者之间对同一个样本的评分是否绝对一致(也就是两个评分者是否对同一个样本给出同样的评分)。
consistency考虑的是不同的评分者之间对同一个样本的评分是否存在相关性。
比如说,A评分者对a,b两个的评分分别是10和50,B评分者对a,b的评分是13和56.按照consistency的考虑方式就是,两个评分员给出的评分虽然不太一样,但是有相关性,就是说b的分数都比a的高,consistency性还是不错的。按照agreement的考虑方式来说,a和b的评分两次的值不一样,那么就是不一致的,agreement性不好。
这个需要按照实际项目要考察的角度来选择。
第二个参数model:
one-way:

在这里插入图片描述

这段话是说,one-way这种形式,实在每个样本都由不同的评价者来评价,这些评价者是从一个总体中随机抽选出来的。但是我们的样本往往是由相同的人评价的。比如说对一批图像的标注,要求给每个图像标注的技术员都是不一样的。这个往往不会这样子,因为我们往往都是由一个人标注完所有的图片,再由另一个人标注相同的图片,在比较两者的差距。所以这总形式很少被使用到。
two-way:
这个有两种情况。
第一种:

在这里插入图片描述

这种情况是随机的选择固定评分者。

在这里插入图片描述

这种情况是评分者是固定的。
综上,one-way是很少倍使用的,一般都是two-way。one-way只在每个样本都由不同的评分者评分的情况下使用。

由于本人不是学数学,也不是做统计的,只用到这3个特性,所以别的就不做说明了。读者可以参考文初给出的文献。
Ref:A Guideline of Selecting and Reporting Intraclass Correlation Coefficients for Reliability Research.(DOI:10.1016/j.jcm.2016.02.012)

猜你喜欢

转载自blog.csdn.net/qq_42458954/article/details/114937386
今日推荐