用Pythn进行简单的Bland-Altman分析

参考资料:

Bland-Altman分析在临床测量方法一致性评价中的应用
bland-altman-plot-in-python

在医学中,经常会遇到评价两种或多种检测、测量方法结果一致性(agreement)的问题。一般情况下,其中一种方法是目前广泛应用的被称为“金标准”的方法,而另一种则是更先进、更便于应用的方法。通过对两种测量方法进行一致性评价可以回答“这两种方法能否相互替代”这样的问题, Bland-Altman正是广泛使用的一种一致性评价方法

原理和方法

基本思想:计算出两种测量结果的一致性界限(limits of agreement),并用图形的方法直观地反映这个一致性界限。最后结合临床实际,得出两种测量方法是否具有一致性的结论。

1.一致性界限

进行两种方法的测定时,通常是对同一批受试对象进行测量。这两种方法一般不会获得完全相同的结果,总是存在着一定趋势的差异,如一种方法的测量结果经常大于(或小于)另一种方法的结果,这种差异被称为偏倚(bias)。
偏倚可以用两种方法测定的结果的差值的均数进行估计,的变异情况则利用差值的标准差来描述。

如果差值的分布服从正态分布,则95%的差值应该位于和之间。我们称这个区间为95%的一致性界限,绝大多数差值都位于该区间内。

如果两种测量结果的差异位于一致性界限内在临床上是可以接受的,则可以认为这两种方法具有较好的一致性,这两种方法可以互换使用。

当样本量较小时,抽样误差会相对较大,因此还要给出95%一致性界限的上下限的置信区间差值均数的标准误,一致性界限的上、下限的标准误近似等于,则可以分别计算出一致性界限上限的95%置信区间和下限的95%置信区间。

2.一致性界限的图形表示——Bland-Altman图

Bland-Altman法可以通过Bland-Altman图进行一个直观的展示:


用Pythn进行简单的Bland-Altman分析_第1张图片
  • x轴表示两种方法测量每个对象的平均值;

  • y轴表示两种方法测量每个对象的差值;

  • 上下两条水平实线代表95%一致性的上下限;

  • 中间实线代表差值的均数,虚线代表差值均数为0。

根据95%一致性界限外的数据点数和一致性界限内的最大差值,以及临床上的可接受程度,对待评价的两种方法的一致性做出评价。

简单实例分析

1.原始数据

通过pandas简单构造出16组数据,如下图DataFrame所示:

用Pythn进行简单的Bland-Altman分析_第2张图片

“y_true”列为参考值,而“y_pred”则为测量值。

2.用差值进行Bland-Altman分析

计算“y_true”列和“y_pred”列差值结果如下:


用Pythn进行简单的Bland-Altman分析_第3张图片

通过describe()函数,我们可以看到两组数据差值的情况大概如下:

用Pythn进行简单的Bland-Altman分析_第4张图片

  • 差值的均数:

  • 差值的标准差:

  • 95%一致性界限:,即(-31.73,24.53)

通过下面的Python代码,我们可以绘制Bland-Altman图:

def bland_altman_plot(data1, data2, *args, **kwargs):
    data1     = np.asarray(data1)
    data2     = np.asarray(data2)
    mean      = np.mean([data1, data2], axis=0)
    diff      = data1 - data2                   # Difference between data1 and data2
    md        = np.mean(diff)                   # Mean of the difference
    sd        = np.std(diff, axis=0)            # Standard deviation of the difference

    plt.scatter(mean, diff, *args, **kwargs)
    plt.axhline(md,           color='gray', linestyle='--')
    plt.axhline(md + 1.96*sd, color='red')
    plt.axhline(md - 1.96*sd, color='red')

差值的Bland-Altman图如下:

用Pythn进行简单的Bland-Altman分析_第5张图片

从图中可以看出,1/16的点在95%一致性界限以外;在一致性界限范围内,差值的绝对值最大为23.21。由于两种测量结果最大相差23.21,两种方法测量结果平均为115.99,这种相差的幅度在临床上是可以接受的,因此可以认为两种方法具有较好的一致性,在临床上可以互相代替。

小结

本文只是对Bland-Altman法进行了一个简单的介绍,同时介绍了Python绘制Bland-Altman图的方法,而Bland-Altman不仅有差值的分析方法,也有比值的分析方法,除此之外,Bland-Altman法还有许多需要注意到的点,在此暂不做进一步深入讨论。

你可能感兴趣的:(用Pythn进行简单的Bland-Altman分析)