The six different types of Intraclass Correlations (ICCs)

Intraclass Correlations (ICCs) quantify how similar members of a group are to one another. The statistical technique is used in several different areas of data analysis from testing mean differences to multilevel descriptive statistics to inter-rater reliability. More recently it has become a popular scoring method for certain constructs such as emotion differentiation (Kashdan, Barrett, & McKnight, 2015). Within psychological science, ICCs were accessibly introduced by a Psychological Bulletin paper by Shrout and Fleiss (1979). They present a framework for understanding six different types of ICCs and how to calculate them.

When I was first started learning advanced statistics, the term "Intraclass Correlation" kept popping up in different statistics courses and topics. While I understood the term within each area, I didn't have a framework around ICCs in general. It wasn't until I published a paper using ICCs that I started to learn what they were all about (Brown, Goodman, Disabato, Kashdan, Armeli, & Tennen, in press) - check it out as its a great paper lead by a bright young scholar Brad Brown at the University of South Florida!). Today, we are going to build up a schema around ICCs so that we can more deeply understand what they are all about.

In this blog post I will be explaining the difference between the six types of ICCs summarized in Shrout and Fleiss (1979). I will start with ICC(1, 1) and ICC(1, k) that are often used for multilevel analysis. Then we will proceed to ICC(2, 1), ICC(2, k), ICC(3, 1), and ICC(3, k) that are often used for inter-rater reliability. For each type of ICC, I will show estimation with both an ANOVA model and linear mixed effects model.

For the statistical programming, I will be using R - an open source computer software program. For more information about R go to <https://www.r-project.org/about.html>. I will also be using a package that I created called `str2str` (read as "structure to structure"), which contains a lot of simple wrapper functions for converting R objects from one structure to another. I find using these functions saves a few lines of code and generally makes code easier to read. If you want to learn more about the package, you can go to the str2str documentation webpage. Because I used Rmarkdown for the analyses, the blog post itself is saved to a PDF. Click here to download the PDF file.