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/zh-hk/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 個項目要…

發表回復

登錄後才能評論