如何在 r 中创建 bland-altman 图(逐步)
Bland-Altman 图用于可视化两种不同仪器或两种不同测量技术之间的测量差异。
它对于确定两种仪器或技术在测量同一概念时的相似程度很有用。
本教程提供了如何在 R 中创建 Bland-Altman 图的分步示例。
第 1 步:创建数据
假设生物学家使用两种不同的仪器(A 和 B)测量同一组 20 只不同青蛙的重量(以克为单位)。
我们将在 R 中创建以下数据框,表示每台仪器测量的每只青蛙的重量:
#create data df <- data. frame (A=c(5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 9, 10, 11, 13, 14, 14, 15, 18, 22, 25), B=c(4, 4, 5, 5, 5, 7, 8, 6, 9, 7, 7, 11, 13, 13, 12, 13, 14, 19, 19, 24)) #view first six rows of data head(df) AB 1 5 4 2 5 4 3 5 5 4 6 5 5 6 5 6 7 7
第 2 步:计算测量值的差异
接下来,我们将在数据框中创建两个新列,其中包含每只青蛙的平均测量值以及测量值的差异:
#create new column for average measurement df$avg <- rowMeans(df) #create new column for difference in measurements df$diff <- df$A - df$B #view first six rows of data head(df) AB avg diff 1 5 4 4.5 1 2 5 4 4.5 1 3 5 5 5.0 0 4 6 5 5.5 1 5 6 5 5.5 1 6 7 7 7.0 0
步骤 3:计算均值差和置信区间
接下来,我们将计算两台仪器测量值的平均差异以及平均差异的 95% 置信区间的上限和下限:
#find average difference mean_diff <- mean(df$diff) mean_diff [1] 0.5 #find lower 95% confidence interval limits lower <- mean_diff - 1.96*sd(df$diff) lower [1] -1.921465 #find upper 95% confidence interval limits upper <- mean_diff + 1.96*sd(df$diff) upper [1] 2.921465
平均差值为0.5 ,平均差值的 95% 置信区间为[-1.921, 2.921] 。
第 4 步:创建 Bland-Altman 图
接下来,我们将使用以下代码使用ggplot2数据可视化包创建 Bland-Altman 图:
#load ggplot2 library (ggplot2) #create Bland-Altman plot ggplot(df, 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 Measurements ") + xlab(" Average Measurement ")
绘图的 x 轴显示两台仪器的平均测量值,y 轴显示两台仪器之间的测量值差异。
黑线代表两台仪器之间测量值的平均差异,而两条红色虚线代表平均差异的 95% 置信区间的限值。