График Бленда-Альтмана используется для визуализации различий в измерениях между двумя разными инструментами или двумя разными методами измерения.
Это полезно для определения того, насколько похожи два инструмента или метода при измерении одной и той же конструкции.
В этом руководстве представлен пошаговый пример создания графика Бланда-Альтмана в R.
Шаг 1: Создайте данные
Предположим, биолог использует два разных инструмента (А и В) для измерения веса одной и той же группы из 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)
A B
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)
A B 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: Создайте график Блэнда-Альтмана
Далее мы будем использовать следующий код для создания графика Бланда-Альтмана с помощью пакета визуализации данных ggplot2 :
#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% доверительного интервала для средней разницы.