Jak interpretować fabułę Blanda-Altmana?


12

Jak w zwykłym języku angielskim interpretuje się fabułę Blanda-Altmana?

Jakie są zalety korzystania z wykresu Blanda-Altmana w porównaniu z innymi metodami porównywania dwóch różnych metod pomiarowych?

Odpowiedzi:


12

Wykres Blanda-Altmana jest szerzej znany jako wykres średniej różnicy Tukeya (jedna z wielu tabel opracowanych przez Johna Tukeya http://en.wikipedia.org/wiki/John_Tukey ).

Chodzi o to, że oś x jest średnią z dwóch pomiarów, co najlepiej zgaduje co do „poprawnego” wyniku, a oś y jest różnicą między dwiema różnicami pomiaru. Na wykresie można następnie wyróżnić niektóre rodzaje anomalii w pomiarach. Na przykład, jeśli jedna metoda zawsze daje zbyt wysoki wynik, to wszystkie punkty otrzymasz powyżej lub wszystkie poniżej linii zerowej. Może również ujawnić, na przykład, że jedna metoda zawyża wysokie wartości, a niedoszacowuje niskie wartości.

Jeśli widzisz punkty na wykresie Blanda-Altmana rozrzucone po całym miejscu, powyżej i poniżej zera, sugeruje to, że nie ma spójnego nastawienia jednego podejścia względem drugiego (oczywiście mogą istnieć ukryte uprzedzenia, które robi ten wykres nie pokazuje się).

Zasadniczo jest to dobry pierwszy krok do eksploracji danych. Inne techniki mogą zostać wykorzystane do dokładniejszego zachowania pomiarów.


Co to znaczy, że masa B&A jest niższa po przekątnej? Badam sygnały EKG i zastanawiam się, czy może to wskazywać średnią oś elektryczną.
Léo Léopold Hertz

2

Oprócz wykresu różnica w stosunku do przeciętnego, wykresy Blanda i Altmana mogą być również stosunkiem w stosunku do średniej. działki.

Na przykład nowa maszyna do ważenia podaje następujące dane, gdy wchodzą na nią osoby o masie 60, 70 i 80 kg.

66 kg 77 kg 88 kg

W takim scenariuszu maszyna ważąca za każdym razem przecenia wagę o 10%. Tak więc stosunek do średniego wykresu zapewni lepszą wizualizację danych w tym przypadku.


Witamy w Cross Validated ! Poświęć chwilę, aby zobaczyć naszą wycieczkę . Przydałoby się również cytowanie odpowiedzi.
Tavrock

1
Prawdopodobnie lepsza jest tutaj (1) średnia geometryczna niż średnia (2) logarytm = log jeden - log drugi - logarytmiczna średnia geometryczna może być następnie wykreślona.
Nick Cox,

0

Oto definicja Wikipedii Bland-Altman:

Wykres Blanda-Altmana (wykres różnicowy) w chemii analitycznej lub biomedycynie jest metodą wykreślania danych stosowaną w analizie zgodności między dwoma różnymi testami. Jest identyczny z wykresem średniej różnicy Tukeya 1 , pod którym jest znany w innych dziedzinach, ale spopularyzował go w statystykach medycznych J. Martin Bland i Douglas G. Altman

Jeśli chcesz zaimplementować wykres Bland-Altman w Pythonie, możesz użyć tego:

Jeśli chcesz to zrobić w Pythonie, możesz użyć tego kodu

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import random
%matplotlib inline
plt.style.use('ggplot')

Właśnie dodałem ostatni wiersz, ponieważ podoba mi się styl ggplot.

def plotblandaltman(x,y,title,sd_limit):
    plt.figure(figsize=(20,8))
    plt.suptitle(title, fontsize="20")
    if len(x) != len(y):
        raise ValueError('x does not have the same length as y')
    else:
        for i in range(len(x)):
            a = np.asarray(x)

            b = np.asarray(x)+np.asarray(y)
            mean_diff = np.mean(b)
            std_diff = np.std(b, axis=0)
            limit_of_agreement = sd_limit * std_diff
            lower = mean_diff - limit_of_agreement
            upper = mean_diff + limit_of_agreement

            difference = upper - lower
            lowerplot = lower - (difference * 0.5)
            upperplot = upper + (difference * 0.5)
            plt.axhline(y=mean_diff, linestyle = "--", color = "red", label="mean diff")

            plt.axhline(y=lower, linestyle = "--", color = "grey", label="-1.96 SD")
            plt.axhline(y=upper, linestyle = "--", color = "grey", label="1.96 SD")

            plt.text(a.max()*0.85, upper * 1.1, " 1.96 SD", color = "grey", fontsize = "14")
            plt.text(a.max()*0.85, lower * 0.9, "-1.96 SD", color = "grey", fontsize = "14")
            plt.text(a.max()*0.85, mean_diff * 0.85, "Mean", color = "red", fontsize = "14")
            plt.ylim(lowerplot, upperplot)
            plt.scatter(x=a,y=b)

Na koniec dokonuję losowych wartości i porównuję je w tej funkcji

x = np.random.rand(100)
y = np.random.rand(100)
plotblandaltman(x,y,"Bland-altman plot",1.96)

Fabuła Bland-Altman

Po drobnych modyfikacjach możesz łatwo dodać pętlę for i wykonać kilka wykresów

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.