File Exchange

image thumbnail

Intraclass Correlation Coefficient (ICC)

version 1.3.1 (2.45 KB) by

Calculate any of 6 different ICCs with confidence intervals

75 Downloads

Updated

View License

This function can calculate any of the 6 different ICCs defined by McGraw as well as their confidence intervals. In addition a hypothesis test is performed with the null hypothesis that ICC = r0.
Syntax:
[r, LB, UB, F, df1, df2, p] = ICC(M, type, alpha, r0)
M is matrix of observations. Each row is an object of measurement and each column is a judge or measurement.
'type' is a string that can be one of the six possible codes for the desired type of ICC:
'1-1': The degree of absolute agreement among measurements made on randomly seleted objects. It estimates the correlation of any two measurements.
'1-k': The degree of absolute agreement of measurements that are averages of k independent measurements on randomly selected objects.
'C-1': case 2: The degree of consistency among measurements. Also known as norm-referenced reliability and as Winer's adjustment for anchor points. case 3: The degree of consistency among measurements maded under the fixed levels of the column factor. This ICC estimates the corrlation of any two measurements, but when interaction is present, it underestimates reliability.
'C-k': case 2: The degree of consistency for measurements that are averages of k independent measurements on randomly selected onbjectgs. Known as Cronbach's alpha in psychometrics. case 3: The degree of consistency for averages of k independent measures made under the fixed levels of column factor.
'A-1': case 2: The degree of absolute agreement among measurements. Also known as criterion-referenced reliability. case 3: The absolute agreement of measurements made under the fixed levels of the column factor.
'A-k': case 2: The degree of absolute agreement for measurements that are averages of k independent measurements on randomly selected objects. case 3: he degree of absolute agreement for measurements that are based on k independent measurements made under the fixed levels of the column factor.

ICC is the estimated intraclass correlation. LB and UB are upper and lower bounds of the ICC with alpha level of significance.

In addition to estimation of ICC, a hypothesis test is performed with the null hypothesis that ICC = r0. The F value, degrees of freedom and the corresponding p-value of the this test are reported.

(The code names for ICC classes correspond to the Table 7 in the reference).

Reference: McGraw, K. O., Wong, S. P., "Forming Inferences About Some Intraclass Correlation Coefficients", Psychological Methods, Vol. 1, No. 1, pp. 30-46, 1996

Comments and Ratings (11)

I would like to use this function but for some reason I cannot unzip it. My computer gives the following error message when trying: Error 1 - action is not allowed. I have only had this problem with this zip-file.

Erlend

Erlend (view profile)

Thanks for fixing it!

Arash Salarian

@Simon The code names or the 'type' argument correspond to the case numbers according to Table 7 in McGraw 1996.

Arash Salarian

@Erlend: You are right! I fixed the issue. It was due to a bug in another function (anova_rm). I removed the dependency and tested the function by comparing the results with IRR package in R.

Erlend

Erlend (view profile)

Hi, the code below produces r-values that are not between LB and UB. Have I misunderstood something on the usage of this function?

x = (0:0.1:10)';
y = 0.8*x + rand(size(x));
[r, LB, UB, F, df1, df2, p] =icc([x,y],'1-1',0.05,0.5);
[LB, r, UB]
ans =
0.8141 0.9549 0.9108

Simon Lévy

Hi Arash,
Thank you very much for sharing this code, it's very useful! However, could you give us the correspondence between the 'type' arguments ('1-1', '1-k', 'C-1', 'C-k', 'A-1', 'A-k') in your function and the cases (Case 1, Case 2, Case 2A, Case 3, Case 3A) from the article you used to code this function?
Thank you very much in advance!

@Matthieu, The two-way random effects model and two-way mixed effects model are equivalent in their calculation and only differ in their interpretation. As such, this script provides a calculation of both.

Matthieu

I was wondering if there was a way to pick 2-way mixed or random model in this function?

Philip West

I used 'nanmean' and 'nanstd' instead of mean_nan and std_nan and it worked fine

ted p teng

ted p teng (view profile)

Great function, easy to use, and it also outputs the confidence interval and a reference for it! Excellent work!!

Andrew

Andrew (view profile)

A phenomenal function for ICC--quick, painless, and complete. The only minor inconvenience is the fact that there are several functions that must be put into the code, but that is a small price to pay.

Updates

1.3.1

The uploaded .zip file was not valid in 1.3. Fixed the issue.

1.3

Removed the dependency to anova_rm function. Fixed a bug in computing the confidence intervals as pointed out by 'Erlend'.

1.2

Fixed the title

1.1

Fixed a bug in ICC.m that resulted in incorrect results

MATLAB Release
MATLAB 8.3 (R2014a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video