十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

013-定性分析

013-定性分析 定性分析分析目的定性qualitative分析评价候选方法与参考方法在阳性/阴性判定上的一致程度对应CLSI EP12。ivdtools提供raw_to_table()从原始配对数据构建四格表counts_to_table()从已有的 TP/FP/TN/FN计数直接构建并配套diagnostics()灵敏度、特异度、PPV、NPV、似然比等、kappa()Kappa与 PABAK与mcnemar()配对差异检验三个分析方法。定量结果需转定性时可用continuous_to_binary()。本文用三个示例演示三种数据来源的完整分析。示例数据为确定性的教学数据阳性方向与阈值应依据方案确定。::: celllibrary(ivdtools) library(readr):::函数概述函数 主要用途 关键输入或输出raw_to_table()原始配对数据构建四格表candidate、reference、positive、na.rmcounts_to_table()由 TP/FP/TN/FNcandidate/reference命名构建四格表continuous_to_binary()定量转定性cutoff≥ cutoff 为 1describe()原始数据描述 仅raw_to_table()来源可用diagnostics()诊断准确性指标ci.method、prevalencekappa()Kappa / PABAKprevalence切换mcnemar()配对差异检验 不一致对 25 用精确检验示例一原始配对数据的完整分析读取和核验数据::: cellqual - read_csv(./data/qualitative-raw.csv, show_col_types FALSE) qual - as.data.frame(qual) str(qual):::::: celltable(qual$gold) table(qual$new):::构建四格表::: cellqa - raw_to_table( qual, candidate new, reference gold, id id, positive positive ) qa:::参数说明raw_to_table()要求候选与参考列都恰好有 2个水平positive指定阳性水平 用于因子/字符列的水平映射na.rm控制是否删除缺失行。id可选用于重复样本检测。原始数据描述::: cellqa - describe(qa):::describe()仅对raw_to_table()来源可用输出行数、ID重复、各列摘要与缺失情况。诊断准确性指标::: cellqa - diagnostics(qa, ci.method wilson):::::: cellqa$diagnostics[c(sensitivity, specificity, ppv, npv, accuracy)]:::本例灵敏度 0.958、特异度 0.972。若已知目标人群患病率可用prevalence重算 PPV/NPV::: cellqa - diagnostics(qa, prevalence 0.4) qa$diagnostics[c(ppv, npv)]:::参数说明diagnostics()的ci.method可选 7种比例置信区间方法默认wilson 给出prevalence时 PPV/NPV按贝叶斯公式重算否则基于数据患病率。Kappa 一致性::: cellqa - kappa(qa):::::: cellqa - kappa(qa, prevalence 0.5):::参数说明kappa()给出 Cohen’s Kappa当给出prevalence时改为计算 PABAK2·p_obs − 1。两者对患病率偏倚的处理不同报告时应注明方法。McNemar 检验::: cellqa - mcnemar(qa):::不一致对 bc 2 25函数自动使用精确二项检验。汇总::: cellsummary(qa):::示例二由 TP/FP/TN/FN 直接构建已有计数时无需原始数据::: celltab - counts_to_table( tp 80, fp 5, tn 120, fn 3, candidate new method, reference gold standard ) tab:::::: celltab - diagnostics(tab) tab - kappa(tab) tab - mcnemar(tab) summary(tab):::::: celldescribe(tab) # counts 来源无原始数据describe() 不可用:::counts_to_table()构建的对象没有原始数据因此describe()不可用diagnostics()、kappa()、mcnemar()均正常。示例三定量数据转定性读取数据候选方法为定量结果result参考为定性gold::: cellcont - read_csv(./data/qualitative-continuous.csv, show_col_types FALSE) cont - as.data.frame(cont) str(cont):::转换为二分类按 cutoff 8 转二分类::: cellcont_bin - continuous_to_binary(cont, cols result, cutoff 8) head(cont_bin):::continuous_to_binary()生成result_binary列≥ cutoff 为 1否则0。为满足raw_to_table()的positive映射要求先重标为与参考一致的标签::: cellcont_bin$result_binary_lab - ifelse(cont_bin$result_binary 1, positive, negative):::构建四格表并分析::: cellqa3 - raw_to_table( cont_bin, candidate result_binary_lab, reference gold, id id, positive positive ) qa3 - diagnostics(qa3) qa3$diagnostics[c(sensitivity, specificity, accuracy)]:::注意positive指定的水平必须同时存在于两列中因此先把二值列重标为positive/negative。 若不指定positive函数可能按排序水平把阳性/阴性方向颠倒导致 TP/FP翻转务必核对。结果判读要点方向一致确认候选与参考的阳性方向定义一致避免四格表整体翻转。水平唯一候选/参考列都必须恰好 2个水平多水平或连续列需先转二分类。患病率PPV/NPV 依赖患病率报告数据患病率或指定目标人群患病率。方法标注Kappa 与 PABAK 含义不同McNemar在小样本不一致对时用精确检验报告方法。阈值记录定量转定性必须记录 cutoff与阳性方向结果只在该阈值下成立。
返回列表