r - R中的类内相关系数,如何处理NA以及评分者和受试者之间没有太多重叠

标签 r matrix desctools

我一直在尝试对 k x m 矩阵中评分者之间的一致性进行 icc(类内相关系数)测试。其中k是行(研究主题),m是评分者。它是一个 70 x 70 矩阵,但它来自随机评估者,其中每个受试者仅评估约 6 次(范围 2-13)。

由于群体规模较大,研究对象和评估者没有太多重叠。

这意味着我的矩阵充满了 NA:

主题___Rater1___Rater2___Rater3___Rater4___...Rater70

主题1 ____ 3 _____ 1____NA_____NA ____ ...

主题2_____NA ____5 _______NA______2 _____ ...

主题3_____6 _____NA_______3 ___5_____ ...

...主题70

我尝试过 psych 库,发现了 2 个主要问题:

  • 首先,无法使用 na.rm (或类似)功能。所以,我不知道如何处理NAs

  • 其次,我无法定义测试类型(ICC1、ICC2 或 ICC3)。即使 R 中的手册和帮助根据 Shrout 和 Fleiss 说明了 ICC 类型,我也找不到示例或函数来确定所使用的类型。

此行不起作用:

Data_O<-na.omit(iccOTE) icc1<-icc(Data_O, na.rm=TRUE, type = c("agreement"), unit = c("single"), r0 = 0, conf.level = 0.95)

--------- 所以: 我切换到 DescTools 库。这在使用 na.rm 函数时很有帮助。我尝试了以下代码:

ICC(Data_O, type = c("ICC1k"), conf.level = 0.95, na.rm = TRUE)

我收到以下错误: stack.data.frame(data.frame( ratings)) 中的错误: 未选择向量列

我尝试查找错误的含义,但找不到。另外,我对库如何使用k有点困惑。我在哪里可以找到信息来了解 k 是否在此示例中用作 (n-1),其中 k 是按情况(行)[k=6] 计算的或一般计算根据完整矩阵 [k=70]?在第二种情况下,它是完全不准确的。

谢谢!!!

最佳答案

在 R 中计算 icc 有两种方法。第一种是 irr 包中的 icc 函数,第二种是 ICC来自 psych 包。

关于测试类型的定义:

如果您使用ICC功能,则无需指定任何内容。 R 将计算所有形式,您只需选择正确的形式即可。输出将采用以下形式:

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函数,通过正确设置参数model、type和unit,您将得到正确的类型。如果您不确定如何操作,我建议您阅读这篇文章:

关于 NA:

icc 也没有为我提供高比例的 NA。

我设法使用 ICC 来处理缺失值的比例很高。但是,ICC 默认删除所有不完整的案例。因此,在您的情况下,它可能会删除所有数据并给您一个错误。您可以设置 missing = F 以包含所有情况。

但是我不确定 icc 是否适合具有许多 NA 的数据。我读到 Krippendorff 的 alpha 能更好地处理 NA。 (参见:Hallgren, K. A. (2012)。计算观察数据的评估者间可靠性:概述和教程。心理学定量方法教程,8(1), 23–34。http://doi.org/10.20982/tqmp.08.1.p023 或 Hayes, A. F., & Krippendorff , K. (2017). 响应编码数据标准可靠性测量的号召,2458(11 月)。http://doi.org/10.1080/19312450709336664http://digital-activism.org/2013/05/picking-the-best-intercoder-reliability-statistic-for-your-digital-activism-content-analysis/) 您可以在 irr 包中找到 Krippendorff 的 alpha。该函数称为kripp.alpha

关于r - R中的类内相关系数,如何处理NA以及评分者和受试者之间没有太多重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164218/

相关文章:

regex - R索引字符串带有指示核苷酸变体的字符 block

json - 在 R 中读取一个巨大的 json 文件,问题

Java-递归-矩阵修改

r - 使用 `lapply` 对数据框 (R) 中的所有列进行 Winsorizing

r - 从类 "simple_triplet_matrix"转换为类 "matrix"

openGL 相机缩放/缩放点和平移

opengl - 如何从模型 View 矩阵中消除旋转,使对象始终面对相机?

r - 计算不一致对的功能不起作用

r - 如何根据R中列中的字母和数字字符对象在data.frame中创建新列

r - 了解随机起始权重对神经网络性能的影响