我没有在网上任何关于ICC {psych} / icc {irr}函数的线程中找到我的特定场景。
我正在尝试根据包含subject,rater和多个评级列的列的数据来查找interrater可靠性。 (从我收集的内容来看,大多数人使用的数据只是作为列,主题作为行,以及单元格中的单个评级。)
数据样本:
以下是我尝试的代码:
icc(data.pers.icc[,5],model="oneway",type="consistency",unit="average",r0=0,conf.level=0.95)
icc(data.pers.icc[,c(1,2,5)],model="oneway",type="consistency",unit="average",conf.level=0.95)
我明白为什么第二行代码会给我一个错误;公式的目的不是将每列作为单独的数据点,而是作为单独的评估者。 但我不明白为什么第一行不起作用。它给了我NA的答案:
Average Score Intraclass Correlation
Model: oneway
Type : consistency
Subjects = 48
Raters = 1
ICC(1) = NA
F-Test, H0: r0 = 0 ; H1: r0 > 0
F(47,0) = NA , p = NA
95%-Confidence Interval for ICC Population Values:
NA < ICC < NA
我也试过包括评级和主题栏,但后者读作ICC(2)并且还给我NA作为答案。
即使这样有效,我仍然需要为每一列重复这个过程,所以我已经提取了因子得分并添加到我可以使用的列中,但是因为我不知道如何运行甚至是单列通过此功能。
P.S。我也试过ICC:
ICC(data.pers.icc[,c(35)],alpha=0.05)
但它给了我这个错误:
ICC错误1:
如果我包含主题和评级列,则会产生另一条错误消息:“对比度只能应用于具有2个或更多级别的因素”。
非常感谢任何帮助!我还有第二个更大的数据框来执行此操作。对不起我对R和统计数据的新手方法。
答案 0 :(得分:1)
通常,icc
函数的第一个参数应该是“n * m矩阵或数据框,n个主题是m。”。这意味着列是raters,行是主题。
如果只有一列(如icc(data.pers.icc[,5],model="oneway",type="consistency",unit="average",r0=0,conf.level=0.95)
中所示),则只有一个评估者。因此无法计算icc。
关于你的第二个例子(icc(data.pers.icc[,c(1,2,5)],model="oneway",type="consistency",unit="average",conf.level=0.95)
):第一列包含错误的主题名称。所有列都必须是数字。此外,你应该分开对待你的特质。
Trait1的正确输入应如下所示:
Adam LiaoBo Fatima Maria
A 5.5 NA NA NA
B 5.0 4 NA NA
D NA NA 7 NA
E 4.0 7 NA NA
F 1.0 NA 2 4
但是,如果你把它放到icc函数中,它也会返回NA。在实验上,我发现这个函数无法处理那么多的NA值。但是,ICC
包中的函数psych
在某种程度上能够在你指定的时候处理那个NA,它应该使用所有案例而不仅仅是完整案例:
所以你可以像这样计算icc:
my_data <-cbind(
c(5.5, 5, NA, 4, 1), #Adam
c(NA, 4, NA, 7, NA), #LiaoBo
c(NA, NA, 7, NA, 2), #Fatima
c(NA, NA, NA, NA, 4)) #Maria
ICC(my_data,missing=F)
将为您提供以下输出:
Call: ICC(x = my_data, missing = F)
Intraclass correlation coefficients
type ICC F df1 df2 p lower bound upper bound
Single_raters_absolute ICC1 0.26 2.4 4 15 0.096 -0.10 0.83
Single_random_raters ICC2 0.11 1.5 4 12 0.277 -0.22 0.77
Single_fixed_raters ICC3 0.10 1.5 4 12 0.277 -0.19 0.75
Average_raters_absolute ICC1k 0.58 2.4 4 15 0.096 -0.58 0.95
Average_random_raters ICC2k 0.34 1.5 4 12 0.277 -2.50 0.93
Average_fixed_raters ICC3k 0.31 1.5 4 12 0.277 -1.84 0.92
Number of subjects = 5 Number of Judges = 4
现在,您只需选择正确的一个。
但是,我已经读过,icc索引既可以用于完全交叉设计(即:当所有评估者为所有科目提供评级时),或者为每个科目随机选择一组新评估者。因此icc可能不是您数据集的最佳选择。
能够更好地处理NAs的索引称为Krippendorff的alpha,它也可以在irr
包中找到。要指定的唯一附加参数是数据类型(参数:method = ("nominal","ordinal","interval","ratio")
)。 (我不知道你的数据,所以你可能会决定使用其他方法,然后我用下面的方法。)
Krippendorff的Trait1的alpha可以这样计算:
kripp.alpha(t(my_data) ,"ratio")
会给你
Krippendorff's alpha
Subjects = 5
Raters = 4
alpha = -0.167
这意味着您的评估者间可靠性略差于预期。该结果与ICC获得的结果非常不同。但是我不认为任何索引对于这么多缺少值的小矩阵都是有意义的。
一般来说,要注意混淆的主题和评分者。例如,对于这个索引,我必须转换我的矩阵(函数t
)。
如果您想了解更多关于icc,Krippendorff的alpha和评估者间的可靠性,我建议您阅读以下文章,即使对于非统计学家也是如此:
Hallgren,K。A.(2012)。计算Inter-Rater可靠性 观测数据:概述和教程。教程 心理学定量方法,8(1),23-34。 http://doi.org/10.20982/tqmp.08.1.p023
Koo,T。K.,&amp; Li,M.Y。(2016)。选择指南和 报告可靠性的类内相关系数 研究。脊椎医学杂志,15(2),155-163 http://doi.org/10.1016/j.jcm.2016.02.012
Stemler,S。E.,&amp; Tsai,J。(2008)。 interrater的最佳实践 可靠性:三种常见方法。量化的最佳实践 方法。 http://doi.org/10.4135/9781412995627.d5
Feng,G。C.(2015)。错误以及如何避免使用中的错误 编码器可靠性指标。方法论,11(1),13-22 http://doi.org/10.1027/1614-2241/a000086
P.S。:我想让你知道,我不是统计学家。我花了几天时间阅读有关索引的文章,并处理与你类似的问题。