How to Calculate Intraclass Correlation Coefficient in Python

Spread the love

What is Intraclass Correlation Coefficient in Statistics?

The Intraclass Correlation Coefficient (ICC) is a descriptive statistic that can be used when quantitative measurements are made on units that are organized into groups. It describes how strongly units in the same group resemble each other. While it is viewed as a type of correlation, unlike most other correlation measures it operates on data structured as groups, rather than data structured as paired observations.

The ICC is often used in reliability studies where the objective is to assess the consistency, or reproducibility, of quantitative measurements made by different observers measuring the same quantity. It’s also frequently used in clinical settings, where it’s important to establish the reliability of a given measurement or test.

The ICC can take on values between 0 and 1:

  • An ICC of 0 indicates that the group means are not similar to each other at all (the variability within groups is the same as the total variability).
  • An ICC of 1 indicates that the group means are identical to each other (there is no variability within groups).
  • In general, the larger the ICC, the more the members of a group resemble each other.

There are several different forms of ICC, depending on how the groups are structured and what exactly is being measured. Some forms assume that each group is rated by the same set of judges (or “raters”), while other forms assume that each group is rated by a different set of judges. Some forms assume that the judges are a random sample from a larger population of possible judges, while other forms assume that the judges are the only ones of interest. The appropriate form of ICC to use depends on the specifics of the study design.

As with any statistical measure, it’s important to interpret the ICC in the context of the specific study and not to use it as the sole measure of reliability or agreement. It’s also important to note that the ICC is a measure of the relative consistency of different measurements, not their absolute agreement.

How to Calculate Intraclass Correlation Coefficient in Python?

Calculating the Intraclass Correlation Coefficient (ICC) in Python can be done using the pingouin package, which provides the intraclass_corr function.

First, you’ll need to install the pingouin package if you haven’t already done so. You can install it via pip:

!pip install pingouin

Then, you can calculate the ICC with the intraclass_corr function. Here’s a basic example:

import pandas as pd
import pingouin as pg

# Create a simple dataframe
df = pd.DataFrame({
   'Rater': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'],
   'Subject': ['1', '2', '3', '4', '1', '2', '3', '4', '1', '2', '3', '4'],
   'Rating': [2, 5, 3, 4, 2, 5, 4, 4, 3, 5, 4, 5]

# Compute ICC
icc_df = pg.intraclass_corr(data=df, targets='Subject', raters='Rater', ratings='Rating')


In this example, pg.intraclass_corr(data=df, targets='Subject', raters='Rater', ratings='Rating') calculates the ICC for the ratings in the DataFrame. The function returns a DataFrame with the ICCs for different forms of ICC (ICC1, ICC2, ICC3), as well as their confidence intervals.

Please note that the ICC assumes that the ratings are normally distributed within each target. If your data does not meet this assumption, you may need to use a non-parametric alternative.

Related Posts

1. How to Calculate Correlation in Python?

2. How to Calculate Partial Correlation in Python?

3. How to Calculate Cross-Correlation in Python?

4. How to Calculate Point-Biserial Correlation in Python?

Rating: 1 out of 5.

Leave a Reply