Plot Differences in Two Measurements-Bland-Altman Plot in R

[This article was first published on Methods – finnstats, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Plot Differences in Measurements, the discrepancies in measurements between two different instruments or measurement methodologies are visualized using a Bland-Altman plot.

It can be used to compare the accuracy of two instruments or approaches while measuring the same build.

Bland-Altman plot in R

This tutorial describes how to create a Bland-Altman plot in R.

Logistic Regression R- Tutorial » Detailed Overview »

Step 1: dataset creation

Suppose if we have one product and the smoothness values measured based on two different instruments (A and B) from the 20 subjects.

Let’s create a data frame,

data <- data.frame(A=c(6, 5, 3, 5, 6, 6, 5, 4, 7, 8, 9,
10, 11, 13, 10, 4, 15, 8, 22, 5),
B=c(5, 4, 3, 5, 5, 6, 8, 6, 4, 7, 7, 11,
13, 5, 10, 11, 14, 8, 9, 4))
head(data)
  A B
1 6 5
2 5 4
3 3 3
4 5 5
5 6 5
6 6 6

Step 2: Difference in Measurements

Next, we’ll add two new columns to the data frame, one for each product’s average measurement and the other for the difference in measurements:

Naive Bayes Classification in R » Prediction Model »

create a new column for average measurement

data$avg <- rowMeans(data)

create a new column for differences

data$diff <- data$A - data$B
data
    A  B  avg diff
1   6  5  5.5    1
2   5  4  4.5    1
3   3  3  3.0    0
4   5  5  5.0    0
5   6  5  5.5    1
6   6  6  6.0    0
7   5  8  6.5   -3
8   4  6  5.0   -2
9   7  4  5.5    3
10  8  7  7.5    1
11  9  7  8.0    2
12 10 11 10.5   -1
13 11 13 12.0   -2
14 13  5  9.0    8
15 10 10 10.0    0
16  4 11  7.5   -7
17 15 14 14.5    1
18  8  8  8.0    0
19 22  9 15.5   13
20  5  4  4.5    1

Deep Neural Network in R » Keras & Tensor Flow

Step 3: Calculate the Confidence Interval

The average difference in measurements between the two instruments, as well as the upper and lower 95 percent confidence interval bounds for the average difference, need to calculate.

find an average difference

mean_diff <- mean(data$diff)
mean_diff
0.85

find lower 95% confidence interval limits

lower <- mean_diff - 1.96*sd(data$diff)

find upper 95% confidence interval limits

upper <- mean_diff + 1.96*sd(data$diff)

The average difference turns out to be 0.85 and the 95% confidence interval for the average difference is [-6.997089, 8.697089].

eXtreme Gradient Boosting in R » Ultimate Guide »

Step 4: Create the Bland-Altman Plot

Let’s make use of ggplot to create a Bland-Altman plot in R.

  library(ggplot2)
  ggplot(data, aes(x = avg, y = diff)) +
  geom_point(size=2) +
  geom_hline(yintercept = mean_diff) +
  geom_hline(yintercept = lower, color = "red", linetype="dashed") +
  geom_hline(yintercept = upper, color = "red", linetype="dashed") +
  ggtitle("Bland-Altman Plot") +
  ylab("Difference Between Instruments") +
  xlab("Average")+theme_bw()

The plot’s x-axis shows the average measurement of the two instruments, while the y-axis shows the difference in measurements between them.

The average difference in measurements between the two instruments is represented by the black line, while the 95 percent confidence interval limits for the average difference are represented by the two red dashed lines.

Repeated Measures of ANOVA in R Complete Tutorial »

Subscribe to the Newsletter and COMMENT below!

The post Plot Differences in Two Measurements-Bland-Altman Plot in R appeared first on finnstats.

To leave a comment for the author, please follow the link and comment on their blog: Methods – finnstats.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)