R中的类内相关系数,如何处理NAs以及评估者与受试者之间没有太多重叠

时间:2016-07-02 20:29:12

标签: r matrix desctools

我一直在尝试对 k x m 矩阵中的评估者之间的协议执行icc(Intraclass Correlation Coefficient)测试。其中 k 是行(研究对象), m 是评估者。它是一个70 x 70矩阵,但它来自随机评估者,每个受试者仅被评估约6次(范围2-13)。

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

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

主题___ Rater1 ___ Rater2 ___ Rater3 ___ Rater4 ___... Rater70

Subject1 ____ 3 _____ 1________NA_____NA ____ ......

主题2 _____ NA ____5 _______NA______2 _____ ...

Subject3 _____ 6 ______ _____ _ _ _ _ _ _ _ _ _ _ _ _ _ _

... Subject70

我尝试过心理图书馆找出两个主要问题:

  • 首先,不能使用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]?在第二种情况下,这将是完全不准确的。

谢谢!!!

1 个答案:

答案 0 :(得分:2)

如何在R中计算icc有两种方法。第一种是来自icc包的irr函数,第二种是来自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功能,您将通过正确设置参数模型,类型和单位来获得正确的类型。如果您不确定如何操作,我建议您阅读本文:

  • Koo,T。K.,& Li,M.Y。(2016)。选择与指导方针 报告可靠性的类内相关系数 研究。脊椎医学杂志,15(2),155-163。 http://doi.org/10.1016/j.jcm.2016.02.012

关于NAs:

icc对我的NAs比例也很高。

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

但是我不确定icc是否适用于具有许多NA的数据。我已经读过Krippendorff的alpha与NA有更好的交易。 (参见:Hallgren,KA(2012)。计算观测数据的Inter-Rater可靠性:概述和教程。心理学定量方法教程,8(1),23-34。http://doi.org/10.20982/tqmp.08.1.p023或Hayes,AF, & 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