Bland-Altman分析法

一、Bland-Altman分析法简介

Bland-Altman分析法又称差异图法,是一种常用的数据变换方法,用于比较两种测量方法的一致性。它基于一种简单的统计原理,即两种测量方法的测值差异随着测值增加而有可能发生变化。这种方法能够直观地体现两种测量方法之间的偏倚和随机误差,同时可以用来确定两种方法的测量差异是否显著。

二、如何进行Bland-Altman分析

进行Bland-Altman分析共需要4个步骤:

1. 采集数据:使用两种测量方法对同一批被测量物进行测试,记录下各自的测量值。

import numpy as np
#假设存在两种测量方法A和B
A = [2.1, 2.0, 2.2, 2.5, 2.3, 2.6, 2.4, 2.7, 2.5, 2.4]
B = [2.0, 2.2, 2.3, 2.8, 2.4, 2.5, 2.7, 2.6, 2.5, 2.3]

2. 计算平均值和差值:对每对测量值,计算其平均值和差值。

mean = np.mean([A, B], axis=0)
diff = A - B

3. 绘制Bland-Altman图:将差异与平均值的平均值绘制成散点图,使用一条水平线绘制平均差异值(bias)。

import matplotlib.pyplot as plt
plt.scatter(mean, diff)
plt.axhline(y=np.mean(diff), color='r', linestyle='-')
plt.xlabel('Mean')
plt.ylabel('Difference')
plt.title('Bland-Altman Plot')
plt.show()

4. 分析结果:分析散点图和平均差异值,确定两种测量方法之间的一致性和差异是否具有显著性。

三、Bland-Altman图的解读

Bland-Altman图常用于展示两种测量方法之间的一致性和差异,其中,散点图展示了每对测量值的平均值和差异值,水平线表示平均差异值。观察Bland-Altman图需要特别注意以下几点:

1. 散点分布是否随机,是否呈现明显的聚集现象。

2. 平均差异值是否为0,如果不为0,是否存在系统误差或常数偏倚。

3. 平均差异值的95%限制是否太宽,如果过宽,说明两种测量方法之间的一致性较差。

四、如何制作Bland-Altman图

制作Bland-Altman图可以按照以下步骤:

1. 建立两个向量:其中一个向量包括每对测量值的平均值,另一个向量包括差异值。

mean = np.mean([A, B], axis=0)
diff = A - B

2. 绘制散点图:使用matplotlib.pyplot.scatter()函数绘制散点图,其中横坐标为平均值,纵坐标为差异值。

import matplotlib.pyplot as plt
plt.scatter(mean, diff)

3. 添加水平线:使用matplotlib.pyplot.axhline()函数绘制一条水平线,代表平均差异值。

plt.axhline(y=np.mean(diff), color='r', linestyle='-')

4. 添加标签和标题:使用matplotlib.pyplot.xlabel()、matplotlib.pyplot.ylabel()和matplotlib.pyplot.title()函数添加标签和标题。

plt.xlabel('Mean')
plt.ylabel('Difference')
plt.title('Bland-Altman Plot')

5. 显示图形:使用matplotlib.pyplot.show()函数显示Bland-Altman图。

plt.show()

五、Bland-Altman一致性分析

Bland-Altman一致性分析是一种用于测定两种测试方法之间一致性的方法,可用于图像分析。其基本原理是通过计算两种方法之间的平均差异程度,来比较它们的一致性。如果平均差异很小,则说明这两种方法相对一致,反之则说明两种方法存在差异。

def get_limits(data):
    mean = np.mean(data)
    std = np.std(data, ddof=1)
    limits = [mean-1.96*std, mean+1.96*std]
    return limits

def get_confidence_interval(data, alpha):
    mean = np.mean(data)
    std = np.std(data, ddof=1)
    n = len(data)
    t = 2.131  # 使用t分布进行置信区间计算
    interval = t*(std/np.sqrt(n))
    ci = [mean-(interval*alpha), mean+(interval*alpha)]
    return ci

mean_diff = np.mean(diff)
limits = get_limits(diff)
ci95 = get_confidence_interval(diff, 1.96)
ci99 = get_confidence_interval(diff, 2.58)

以上是计算Bland-Altman一致性分析所需的函数以及计算例子。其中,get_limits()函数用于计算95%的置信限,get_confidence_interval()函数用于计算置信区间,mean_diff为平均差异值,limits为95%置信限,ci95为95%置信区间,ci99为99%置信区间。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/309363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-04 19:30
下一篇 2025-01-04 19:30

相关推荐

  • 层次分析法公式细解

    一、基本介绍 层次分析法(Analytic Hierarchy Process,AHP)是美国运筹学家托马斯 沙里特在20世纪70年代提出的一种系统性分析和综合各种复杂对立因素的数…

    编程 2025-01-27
  • 深入探究Star分析法

    一、什么是Star分析法 Star分析法是一种常用于需求分析的技术。它通过将需求划分为五个方面:Situation(情景背景)、Task(任务)、Action(行动)、Result…

    编程 2025-01-01
  • LR分析法的详细阐述

    一、LR分析法属于 LR分析法属于自底向上分析法。在语法上LR范式更加自由,适合表示丰富的语言结构。 二、LR分析法在自左至右扫描输入 用于在不确定的环境中为输入符号串建立一个带有…

    编程 2024-11-27
  • 比较分析法的定义及应用范围

    一、比较分析法的定义和特点 在各个领域的研究和应用中,比较分析法作为一种常用的研究方法备受青睐。 比较分析法是在事物中发现共性和差异的基础上,对两个或多个事物进行系统性、全面性的对…

    编程 2024-11-12
  • jsa分析实例(JSA分析法)

    本文目录一览: 1、什么叫工作前安全分析 2、jsa是什么意思? 3、jsa工作安全分析是什么 什么叫工作前安全分析 工作前安全分析,也叫作业安全分析,工作危害分析JHA,由美国葛…

    编程 2024-10-04
  • java层级算法(层次分析法java代码)

    1、java十大算法 2、java算法有哪些分别 3、java层次遍历算法思路? 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要…

    编程 2024-10-03

发表回复

登录后才能评论