Bland-Altman-Plot in R erstellen

von | Mai 18, 2021 | R, R-Diagramme | 0 Kommentare

Zweck des Bland-Altman-Plots

Ein Bland-Altman-Plot vergleicht zwei Messmethoden miteinander. Zumeist gibt es eine etablierte Methode, die sehr genau ist und als „Goldstandard“ bezeichnet wird. Diese Methode kann aber langsam, teuer usw. sein, weswegen man eine schnellere, günstigere Methode entwickelt. Die Frage, die in dem Zusammenhang zu beantworten ist: Ist die neue Methode in etwa genauso gut, wie die alte?
Den grundlegenden Aufbau und die Logik dahinter habe ich bereits in einem separaten Artikel erklärt.

 

Bland-Altman-Plot in R erstellen

Vorarbeiten

Für ein Bland-Altman-Plot in benötigt man die gleichen Probanden bzw. Testobjekte für beide Messungen. Beide Messmethoden A und B müssen zwingend am selben Proband/Testobjekt durchgeführt werden und in verschiedenen Variablen hinterlegt sein.
Das Einlesen von Daten erkläre ich hier.
Somit erhält man zwei Messreihen, jeweils eine für Messmethode A und B. Das kann exemplarisch wie folgt aussehen:


Messung A	Messung B
20,50	        20,23
20,58	        20,25
20,38	        20,65
20,60	        20,61
20,77	        20,45
20,29	        21,42
20,41	        21,39
20,27	        21,59
...             ...

Zunächst benötigt man zwei weitere Paket. Das „BlandAltmanLeh“-Paket sowie das „ggplot2“-Paket können mit der install.packages()-Funktion installiert und mit der library()-Funktion geladen werden:


install.packages("BlandAltmanLeh")
install.packages("ggplot2")
library(BlandAltmanLeh)
library(ggplot2)

 

Erstellung eines einfachen Bland-Altman-Plots

Hierzu reicht es bereits die bland.altman.plot()-Funktion des BlandAltmanLeh-Pakets aufzurufen und die beiden Datenreihen (hier: A und B aus dem Dataframe „data“) einzugeben:


bland.altman.plot(data$A, data$B)

Hieraus erhält man ein rudimentäres Bland-Altman-Diagramm:
Bland-Altman-Plot R


 

Erstellung eines angepassten Bland-Altman-Plots

Die einfache Darstellung erfüllt prinzipiell den Zweck, allerdings ist sie eben nur zweckmäßig und nicht ansehnlich. An dieser Stelle kommt ggplot ins Spiel. Mit dem zusätzlichen Argument graph.sys = „ggplot2“ kann man sich ein ansehnlicheres Bland-Altman-Diagramm ausgeben lassen.
Das Argument „geom_count=TRUE“ sorgt zudem dafür, dass die Punkte größer dargestellt werden, sofern sie mehrfach vorkommen. Da dies selten vorkommt, außer die Stichprobe ist sehr groß, verzichte ich in diesem Beispiel auf das Argument.


bland.altman.plot(data$A, data$B, graph.sys = "ggplot2")

Das sieht dann wie folgt aus:
Bland Altman Plot R

 

Wenn die englischen Achsenbeschriftungen stören oder ein Titel gewünscht wird, kann dies auch eingearbeitet werden. Allerdings bedarf es hierzu der Erweiterung der bisherigen Vorgehensweise. Das Diagramm muss mittels der print()-Funktion ausgegeben werden, vorher dessen vollständige Attribute gespeichert werden, um damit arbeiten zu können.
Konkret sieht das so aus, das ich die Daten zur Diagrammerstellung in einem Dataframe namens „plot“ speichere.:


plot <- bland.altman.plot(data$A, data$B, graph.sys = "ggplot2")

Diesen "plot" kann ich nun mit der print()-Funktion ausgeben lassen und die Achsen (xlab, ylab) beschriften sowie einen Titel vergeben (ggtitle). Um den Titel zentriert anzeigen zu lassen, verwende ich zudem den theme()-Befehl.


print(plot + xlab("Mittelwert der Messungen") + ylab("Mittelwertdifferenz") 
        + ggtitle("Bland-Altman-Plot")
        +theme(plot.title=element_text(hjust = 0.5)))


 

Zusatzargumente

Erwähnenswert aber meist nicht notwendig sind noch die beiden Argumente "two" und "mode".

  • Die horizontalen gestrichelten Linien werden mit zwei Standardabweichungen Abstand von der Mittelwertdifferenz (durchgezogene horizontale Linie) gezeichnet. Der Standardwert ist hier 1,96 für eine korrekte 95-Prozent-Konfidenzintervallschätzung. Der Wert kann jedoch auf 2 ("two=2") für eine bessere Übereinstimmung mit Bland, Altman (1986), S. 310 gesetzt werden.
  • mode bestimmt, ob die Mittelwertdifferenzen aus Messreihe A - Messreihe B oder umgekehrt berechnet werden. Das ist der Standardfall. Ist "mode = 2", wird Messreihe B - Messreihe A gerechnet.
  •  

    Interpretation des Bland-Altman-Plots

    Ich hatte bereits eingangs auf einen ausführlichen Artikel hierzu verwiesen. Deshalb an dieser Stelle nur die wichtigsten Informationen.
    Die Frage nach einer annehmbaren Abweichung muss primär beantwortet werden. Bestenfalls befinden sich keine Punkte ober- bzw. unterhalb der Abweichungstoleranz. Dies ist im Beispiel der Fall. Vereinzelte Fälle außerhalb können vorkommen, sollten aber hinsichtlich möglicher Messfehler noch mal geprüft werden. Können Messfehler ausgeschlossen werden, ist zu prüfen, welche Umstände zu einem anderen Messergebnis geführt haben. Können diese repliziert und damit künftig für eine solche Abweichung kontrolliert werden, kann das Messverfahren angepasst werden bzw. auf die Umstände für ungenaue Messungen in den Instruktionen hingewiesen werden.

     

    Videotutorial

    Dieses Video ansehen auf YouTube.

     

    Literatur

    Bland, J. M., & Altman, D. (1986). Statistical methods for assessing agreement between two methods of clinical measurement. The Lancet, 327(8476), 307-310.

     

Hat dir der Beitrag geholfen?

Dann würde ich mich über eine kleine Spende freuen, die es mir erlaubt, weiterhin kostenfreie Inhalte zu veröffentlichen.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Excel- und SPSS-Experte

YouTube-Kanal

Excel Online-Kurs

YouTube-Kanal