0

I am having issues with the ICC function from the psych package in R. Pretty much we had three technicians (AA,AB,AC) who measure 11 control solutions three times. We know the control values for these solutions(F_exp). The three measurements were averaged, leaving to AA_avg,AB_avg,AC_avg.

I am trying to calculate the Inter-rater reliability of these three technicians (It reflects the variation between 2 or more raters who measure the same group of subjects). I am planning to use ICC (2,1)

When I try to run

ICC(try[3:5]) # n*p matrix where n=subjects, p=raters.

I get the following results: enter image description here

enter image description here I am not sure what to do. I am feeding the data as instructed. When I do it with icc in the irr package, which is more specific with its format of data, I get:

enter image description here

And well and ICC of 0.999998 seems too good to be true. I would really appreciate any help. Thank you!

Here is the structure of my data:

try<-structure(list(Input = c(1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), 
    F_Exp = c(3, 100, 1, 40, 4, 40, 4, 40, 1, 40, 100), AA_avg = c(3.11666666666667, 
    103.716666666667, 1, 40.8333333333333, 4.18333333333333, 
    40.8666666666667, 4.18333333333333, 40.9166666666667, 1.03333333333333, 
    40.9333333333333, 103.783333333333), AB_avg = c(3.25, 103.016666666667, 
    1.13333333333333, 40.8333333333333, 3.94666666666667, 40.45, 
    4.28333333333333, 41.1166666666667, 1.05, 40.9166666666667, 
    104), AC_avg = c(3.2, 103.55, 1.23333333333333, 40.9, 4.26666666666667, 
    40.4, 4.28333333333333, 40.9, 1.05, 40.95, 103.733333333333
    ), ALL_avg = c(3.18888888888889, 103.427777777778, 1.12222222222222, 
    40.8555555555556, 4.13222222222222, 40.5722222222222, 4.25, 
    40.9777777777778, 1.04444444444444, 40.9333333333333, 103.838888888889
    ), AA_error = c(-0.116666666666667, -3.71666666666667, 0, 
    -0.833333333333336, -0.183333333333334, -0.866666666666667, 
    -0.183333333333334, -0.916666666666664, -0.0333333333333334, 
    -0.93333333333333, -3.78333333333333), AB_error = c(-0.25, 
    -3.01666666666667, -0.133333333333333, -0.833333333333336, 
    0.0533333333333332, -0.450000000000003, -0.283333333333333, 
    -1.11666666666667, -0.05, -0.916666666666664, -4), AC_error = c(-0.2, 
    -3.55, -0.233333333333333, -0.899999999999999, -0.266666666666667, 
    -0.399999999999999, -0.283333333333333, -0.899999999999999, 
    -0.05, -0.950000000000003, -3.73333333333333)), row.names = c(NA, 
-11L), groups = structure(list(Input = c(1, 3, 4, 5, 6, 7, 8, 
9, 10, 11, 12), .rows = structure(list(1L, 2L, 3L, 4L, 5L, 6L, 
    7L, 8L, 9L, 10L, 11L), ptype = integer(0), class = c("vctrs_list_of", 
"vctrs_vctr", "list"))), row.names = c(NA, -11L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))
Shivvy
  • 67
  • 2
  • 6

1 Answers1

0

Your raters' scores are negligibly different across both average rating and rating for each id. It can't estimate random intercept variation if there isn't any. Why don't you believe that your ICC is really high?

Between-rater means:

lapply(try[, 3:5], mean)

$AA_avg [1] 34.96061

$AB_avg [1] 34.90879

$AC_avg [1] 34.95152

Brigadeiro
  • 2,649
  • 13
  • 30
  • I guess my worry stems from the singularity issue. Would you say ICC is not the best way to measure inter rater variability then? I guess there isn't any considering how accurately they recorded it to the expected value (F_exp) – Shivvy Dec 15 '20 at 04:41
  • Well, I don't think ICC is the wrong approach necessarily. It's just telling you that you basically have no disagreement between your raters. The call to `icc()` estimates a mixed model with random intercepts, but there's no random intercept variation. In other words, the intercept is the same for all raters because their scores are basically the same. – Brigadeiro Dec 15 '20 at 05:19