news 2026/8/28 7:07:36

012-方法学比较

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
012-方法学比较

方法学比较

分析目的

方法学比较(method
comparison)评价候选方法(candidate)与参考方法(reference)在相同样本上
测得结果的一致性,对应 CLSI EP09。ivdtoolsmcr()提供一个渐进式
S3 工作流:描述统计 → 相关分析 → 回归(OLS、WLS、Deming、加权
Deming、Passing–Bablok)→ Bland–Altman → 异常值 →
医学决定水平偏倚,并提供绘图、预测与汇总。本文以一个包含不同批次与样本类型的完整示例演示全流程,
并演示按批次/样本类型拆分后的子组比较。

示例数据为确定性的教学数据,其中人为加入了一个离群点以演示异常值检测;统计结果不自动构成合格
判定,接受标准应在分析前确定。

::: cell

library(ivdtools) library(readr)

:::

函数概述


函数 主要用途 关键输入或输出


mcr()创建方法学比较对象idcandidatereferenceweights

describe()描述统计 候选/参考/差值及额外列

correlation()相关分析 pearson/spearman/kendall

regression()回归拟合 ols/wls/deming/wdeming/pb、lambdaweights

bland_altman()一致性限 difference/ratio/percent、x_axis

outlier()差值异常值 grubbs/esd/dixon/iqr、type

bias()医学决定水平偏倚mdlinterval

predict()正向/逆向预测 需先回归

plot()/summary()图形与汇总type选择图形

示例:完整的单示例分析

读取和核验数据

数据包含 40 例,每例有编号id、候选方法结果candidate、参考方法结果
reference, 以及批次batch(B1/B2)与样本类型
sample_type(serum/plasma/urine):

::: cell

mc_dat <- read_csv("./data/method-comparison.csv", show_col_types = FALSE) mc_dat <- as.data.frame(mc_dat) str(mc_dat)

:::

::: cell

dim(mc_dat) knitr::kable(table(mc_dat$batch), caption = "批次分布") knitr::kable(table(mc_dat$sample_type), caption = "样本类型分布")

:::

创建对象与描述统计

::: cell

mc <- mcr(mc_dat, id = "id", candidate = "candidate", reference = "reference")

:::

::: cell

mc <- describe(mc, cols = c("batch", "sample_type")) mc

:::

describe()cols指定纳入描述的分类/数值附加列,支持-
前缀排除。

相关分析

::: cell

mc <- correlation(mc, method = "pearson")

:::

参数说明:correlation()method可选
"pearson""spearman""kendall"
相关反映两变量共同变化的程度,不等于一致性,不能替代 Bland–Altman
或回归偏差评价。

回归分析

依次比较 OLS、Deming、Passing–Bablok 与 WLS。由于regression()
会更新对象内的回归结果,多种 方法分别存入不同对象以便比较:

::: cell

mc_ols <- regression(mc, method = "ols") mc_dem <- regression(mc, method = "deming") mc_pb <- regression(mc, method = "pb") mc_wls <- regression(mc, method = "wls", weights = "1/y")

:::

::: cell

knitr::kable( data.frame( 方法 = c("OLS", "Deming", "Passing-Bablok", "WLS(1/y)"), 截距 = c(mc_ols$regression$intercept, mc_dem$regression$intercept, mc_pb$regression$intercept, mc_wls$regression$intercept), 斜率 = c(mc_ols$regression$slope, mc_dem$regression$slope, mc_pb$regression$slope, mc_wls$regression$slope) ), digits = 4, caption = "四种回归方法截距与斜率比较" )

:::

::: cell

print(mc_ols)

:::

本例 OLS 斜率 ≈ 0.96,95% CI 不含 1,说明候选方法存在约 4%
的比例偏差(数据真实偏差即为 5%)。

参数说明:regression()method可选
"ols""wls""deming""wdeming""pb"。 Deming 用lambda
指定方差比(ref/cand,默认 1);wls/wdeming必须提供
weights(内置方案 或数据列名);conf.level控制参数置信区间。

医学决定水平的偏倚

bias()评价在医学决定水平(MDL)处的预测偏倚:

::: cell

mc_ols <- bias(mc_ols, mdl = c(30, 80, 150), interval = "both") mc_ols$bias

:::

::: cell

plot(mc_ols, type = "bias", mdl = c(30, 80, 150))

:::

参数说明:bias(mdl, level, interval)mdl
为医学决定水平向量;interval可选
"""confidence""prediction""both"。偏倚定义参考候选方法
mdl处的拟合值与mdl
之差,解释时应结合回归方向和方案规定的允许偏倚。

Bland–Altman 分析

::: cell

mc_ols <- bland_altman(mc_ols, type = "difference")

:::

::: cell

plot(mc_ols, type = "bland_altman")

:::

::: cell

mc_ols$bland_altman[c("mean_diff", "sd_diff", "loa")]

:::

参数说明:bland_altman()type可选
"difference""ratio""percent"(Y 轴度量),x_axis可选
"mean""candidate""reference"(X 轴);agree.level控制 LoA
宽度,conf.level控制 LoA 置信区间。

异常值检测

对配对差值检测异常值:

::: cell

mc_ols <- outlier(mc_ols, method = "grubbs", type = "difference") mc_ols$outlier

:::

::: cell

mc_ols$outlier$indices

:::

检测到第 7
号样本的差值明显偏大。检出异常值不等于应删除------应回查原始记录、实验过程,并在有
充分理由时进行包含/不包含的敏感性分析。

预测

::: cell

predict(mc_ols, candidate = c(40, 100))

:::

::: cell

predict(mc_ols, reference = c(50, 120), inverse = TRUE)

:::

子组比较

不同批次或样本类型的方法表现可能不同。先按批次拆分,再对子组重跑回归与
Bland–Altman:

::: cell

for (b in c("B1", "B2")) { sub <- mc_dat[mc_dat$batch == b, ] mcs <- mcr(sub, id = "id", candidate = "candidate", reference = "reference") mcs <- regression(mcs, method = "ols") mcs <- bland_altman(mcs, type = "difference") cat(b, ": slope =", round(mcs$regression$slope, 4), ", mean diff =", round(mcs$bland_altman$mean_diff, 3), "\n") }

:::

按样本类型同理split()
后分别分析。子组比较的结论用于判断方法表现是否受批次/样本类型影响,
只有预先定义的接受标准才能支撑可接受性结论。

汇总

::: cell

summary(mc_ols)

:::

结果判读要点

  1. 方向核对:回归与 Bland–Altman
    均需确认候选相对参考的方向与偏差符号。
  2. 相关≠一致:相关系数高不等于方法一致,重点看回归斜率和
    Bland–Altman LoA。
  3. 方法选择:OLS 假设参考无误差;参考有误差时用
    Deming/PB;方差不齐时考虑 WLS/WDeming。
  4. 离群处理:检出离群值后回查并做敏感性分析,不自动删除。
  5. 子组解释:批次/样本类型拆分后分别判断,避免均值掩盖子组差异。
  6. 接受标准:偏差、LoA、MDL
    偏倚都必须与预先规定的允许限比较才能作出可接受性结论。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 7:06:15

基于Parser解析的车辆重识别:从语义分割到精准检索的实战指南

简介&#xff1a;计算机视觉中的目标重识别技术旨在解决跨摄像头、跨场景下的同一目标检索问题&#xff0c;其核心原理是通过深度学习模型学习具有判别力的特征表示&#xff0c;实现精准匹配。这项技术在安防监控、智能交通等领域具有重要价值&#xff0c;能够应用于车辆追踪、…

作者头像 李华
网站建设 2026/8/28 7:05:26

200+ 插件!这个仓库收集了几乎所有的 DeepSeek Harness 插件!

大家好&#xff0c;我是 Java陈序员。 如果你最近有关注 AI Agent 开源生态&#xff0c;一定听说过 DeepSeek Harness&#xff08;简称 DSH&#xff09; —— DeepSeek 开源的智能体框架。 DeepSeek Harness 不是新模型&#xff0c;不是新聊天界面&#xff0c;而是一套让大模型…

作者头像 李华
网站建设 2026/8/28 7:04:46

从黑盒到白盒:构建模块化RAG系统的核心组件与工程实践

简介&#xff1a;检索增强生成&#xff08;RAG&#xff09;系统通过结合信息检索与大型语言模型&#xff08;LLM&#xff09;的能力&#xff0c;有效解决了大模型知识更新滞后与幻觉问题。其核心原理是将外部知识库向量化后&#xff0c;根据用户查询进行语义检索&#xff0c;并…

作者头像 李华
网站建设 2026/8/28 7:01:26

Seedance 2.5专业工具:AI视频生成如何从玩具走向生产工具

过去做一条像样的短视频要经历什么&#xff1f;“写脚本、找素材、录口播、剪辑、加字幕、调色、配乐”&#xff0c;一个熟手至少半天。而今天&#xff0c;用即梦这类AI视频平台&#xff0c;只要输入一段提示词&#xff0c;几分钟就能拿到画面质量接近电影感的视频素材。这是事…

作者头像 李华
网站建设 2026/8/28 7:01:03

STM32 DAC实战指南:从基础配置到DMA任意波形输出

1. 项目概述&#xff1a;从数字到模拟的桥梁玩STM32的兄弟&#xff0c;不知道你有没有过这样的经历&#xff1a;用PWM调个LED亮度或者驱动个舵机&#xff0c;感觉还行&#xff0c;但一遇到需要真正平滑、精确的模拟电压输出时&#xff0c;比如做个简易信号发生器、控制一个线性…

作者头像 李华
网站建设 2026/8/28 7:00:01

LLM生产环境部署成本拆解:从显存计算到推理框架落地实践

把 LLM 从本地 Demo 搬到生产环境&#xff0c;成本并不等于“买几张显卡”这么简单。很多人本地跑一个 7B 模型&#xff0c;感觉速度还不错&#xff0c;就把服务直接挂出去&#xff0c;结果并发一上来就 OOM&#xff0c;推理延迟从 300ms 飙到 30 秒。真正的问题不是模型跑不跑…

作者头像 李华