Có thể tạo một Bland-Altman plot bằng Python không? Tôi dường như không thể tìm thấy bất cứ điều gì về nó.Âm mưu Bland-Altman trong Python
Tên khác cho loại lô này là ô Tuỷ có ý nghĩa khác biệt về Tukey.
Ví dụ:
Có thể tạo một Bland-Altman plot bằng Python không? Tôi dường như không thể tìm thấy bất cứ điều gì về nó.Âm mưu Bland-Altman trong Python
Tên khác cho loại lô này là ô Tuỷ có ý nghĩa khác biệt về Tukey.
Ví dụ:
Nếu tôi đã hiểu lý thuyết đằng sau cốt truyện chính xác, mã này sẽ cung cấp âm mưu cơ bản, trong khi bạn có thể cấu hình nó theo nhu cầu cụ thể của riêng bạn.
import matplotlib.pyplot as plt
import numpy as np
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='gray', linestyle='--')
plt.axhline(md - 1.96*sd, color='gray', linestyle='--')
Các yếu tố tương ứng trong data1
và data2
được sử dụng để tính toán các tọa độ cho các điểm vẽ trên biểu đồ.
Sau đó, bạn có thể tạo một âm mưu bằng cách chạy ví dụ:
from numpy.random import random
bland_altman_plot(random(10), random(10))
plt.title('Bland-Altman Plot')
plt.show()
Không nên là 'md + 1,96 * sd' và' md - 1,96 * sd' thay thế? –
có lẽ tôi đang thiếu cái gì, nhưng điều này có vẻ khá dễ dàng:
from numpy.random import random
import matplotlib.pyplot as plt
x = random(25)
y = random(25)
plt.title("FooBar")
plt.scatter(x,y)
plt.axhline(y=0.5,linestyle='--')
plt.show()
Ở đây tôi chỉ cần tạo một số dữ liệu ngẫu nhiên giữa 0 và 1 và tôi ngẫu nhiên đặt một đường ngang tại y = 0.5 - nhưng bạn có thể đặt bao nhiêu tùy thích bất cứ nơi nào bạn muốn.
Tại sao bạn không chỉ cần vẽ các dấu chấm sử dụng 'plt.plot' và thêm đường ngang sử dụng' plt.axhline'? Âm mưu đó có vẻ dễ dàng, đủ để làm. –
Có âm mưu dễ dàng. Nhưng tôi nghĩ có lẽ có một mô-đun trong một lib đã thực hiện các phép tính. Ví dụ tôi vượt qua 2 tín hiệu của tôi và nó âm mưu cốt truyện của tôi. Nó luôn luôn trung bình trên trục x và sự khác biệt trong 2 tín hiệu trên trục y. Các đường ngang là độ lệch chuẩn trung bình (neg và pos) – Ojtwist