How to Calculate Point-Biserial Correlation in R

Spread the love


Point-biserial correlation is a specialized correlation coefficient used to measure the strength and direction of the association between a continuous variable and a binary variable. It’s an extension of Pearson’s correlation coefficient and is used when one of the variables can only take two values. This article will guide you through calculating the point-biserial correlation in R, interpreting the results, visualizing the data, and understanding its applications and limitations.

Understanding Point-Biserial Correlation

Point-biserial correlation is used to quantify the strength and direction of the linear relationship between a continuous variable and a binary categorical variable (e.g., pass/fail, yes/no). It’s a special case of Pearson’s correlation coefficient and, as such, ranges from -1 to 1:

  • A coefficient close to 1 indicates a strong positive relationship.
  • A coefficient close to -1 indicates a strong negative relationship.
  • A coefficient close to 0 indicates a weak or no linear relationship.

Calculating Point-Biserial Correlation in R

Step 1: Importing and Preparing Your Data

Assuming your dataset is in a CSV file named “data.csv”, use the read.csv() function to import it.

data <- read.csv("path_to_your_file/data.csv")

View the first few rows of your data.


Ensure that one of your variables is continuous and the other is binary.

Step 2: Calculating Point-Biserial Correlation

In R, you can use the standard cor.test() function to calculate the point-biserial correlation since it’s a special case of Pearson’s correlation. Let’s assume your dataset has a continuous variable named “variable1” and a binary variable named “variable2”.

correlation_test <- cor.test(data$variable1, as.numeric(data$variable2), method = "pearson")

Step 3: Viewing and Understanding the Results

Print the test results.


This will give you the correlation coefficient, along with the p-value and confidence intervals. The p-value will help you determine if the correlation is statistically significant.

Visualizing Point-Biserial Correlation

Visualization can be helpful in understanding the relationship between variables. One way to visualize point-biserial correlation is by using a scatter plot and jittering the binary points to see the distribution.

plot(jitter(data$variable2), data$variable1, main="Point-Biserial Correlation",
     xlab="Binary Variable", ylab="Continuous Variable", pch=19)

Interpreting the Results

Like Pearson’s correlation, the point-biserial correlation coefficient tells us about the strength and direction of the linear relationship between two variables. A positive coefficient indicates that as the binary variable increases (e.g., from 0 to 1), the continuous variable also tends to increase. Conversely, a negative coefficient indicates that as the binary variable increases, the continuous variable tends to decrease.

Applications and Limitations

The point-biserial correlation is especially useful in scenarios where you need to understand the relationship between a continuous variable and a binary categorical variable, such as:

  • Examining the relationship between exam scores (continuous) and pass/fail status (binary).
  • Analyzing the association between customer satisfaction ratings (continuous) and churn status (binary).

However, there are limitations:

  • It assumes that the continuous variable is approximately normally distributed for each category of the binary variable.
  • It only captures linear relationships.
  • It does not imply causation.


The point-biserial correlation coefficient is a valuable tool for examining the relationship between a continuous and a binary variable. In R, this can be conveniently computed using the cor.test() function. When interpreting the results, it is important to consider the assumptions and limitations of the point-biserial correlation and ensure that the data meets these assumptions. The technique can be especially useful in education, business analytics, psychology, and other fields where analyzing relationships between different types of variables is important.

Posted in RTagged

Leave a Reply