Bland Altman分析的Origin实现(附带MATLAB实现)
Bland Altman分析的Origin实现(附带MATLAB实现)
参考教程:
https://cloud.tencent.com/developer/article/1556951
教程是用Python做的,我比着做了MATLAB和origin两个版本,MATLAB用于理解Python,origin实现点点点傻瓜式操作。
重点讲解origin操作,MATLAB代码附在最后
step1:导入数据,true和pred两列,都设置为y轴数据

step2:计算两列数据差,在F(x)窗格输入col(a)-col(b)即可,同理,计算pred和true数据的均值,如图

step3:使用统计功能对差值进行统计,默认选项即可,将获得的结果,新建立两列进行存储mean和standard deviation



step4:计算95的置信区间,up=col(e)+1.96 * col(f),down=col(e)-1.96 * col(f)

step 5:对数据进行排序,方便绘图,选中一列数据,然后右键,按图中选择即可

step6: 绘散点图,选中mean和diff数据,plot-》scatter

step7:增加置信区间线和差值平均值,绘制好的散点图激活,然后insert,plot to layer ,line

弹出窗口,点ok

弹出的窗口,添加需要添加的线条,先up然后按住ctrl选中down,点向右箭头,

同理,添加diffmean数据,如图

点击ok,得到初步的图像了

step8:调整颜色,字体,线条类型,边框类型等元素
粗调如下:


另附MATLAB代码如下:
%绘制blandaltman图形
clear all;clc;close all;
ytrue=[123.25, 126.83, 79.70, 129.23, 110.23, 116.53, 88.35, 90.04, 129.32, 211.44, 142.93, 135.41, 135.63, 92.58, 75.82, 93.90]';
ypred=[86.32, 136.65,73.33, 133.19, 119.34, 101.29, 88.40,113.25, 131.44, 210.50, 124.82, 112.81, 139.93, 92.13,77.04,90.14]';
x=(ytrue+ypred)/2;
ydiff=-ytrue+ypred;
ydiffmean=mean(ydiff);
ydiffstd=std(ydiff);
up95=ydiffmean+1.96*ydiffstd;
down95=ydiffmean-1.96*ydiffstd;
figure
scatter(x,ydiff,'filled','r')
hold on
yline(up95,'-r','95up','LineWidth',2)
hold on
yline(down95,'-r','down95','LineWidth',2)
hold on
yline(ydiffmean,'--b','diffmean','LineWidth',2)