0%

Fitting a Line to Scatter Plots(Regression Analysis)

Fitting a Line to Scatter Plots

以下均参考自EP09-A3

临床实验室比对试验研究时,首先进行偏差图分析,如果不理想,再进行线性拟合回归分析。厂家在建立和确定对比声明时,必须进行回归分析

在做回归分析前需要先确定基本假设,这个假设是基于偏差图的结论;因此在确定选用何用回归方法前,需要先确定差值的分布情况

在方法学比较研究中,对于回归分析,通常将对比试剂作为x轴,考核试剂作为y轴。

The default assumption is trying to demonstrate exact concordance(identity) between both measurement procedures

1. Constant Stardard Deviation

如果各数据点差值变化较为恒定,相关系数R^2大于等于0.95,则采用OLR进行回归分析,否则采用其他回归方法,如Deming回归

但是一般OLR只是假设了因变量y有随机误差,而自变量x是不变的,这在方法学比对中是很难满足这个条件的,一般来说,考核对比两种诊断仪器/试剂都会存在着随机误差;对于这种情况,可以考虑使用Deming回归,因此在恒定SD情况下,首选Deming回归

2. Constant Coeffienct of Variation

如果数据满足比例差值变化较为恒定,即恒定CV,那么加权最小二乘法(WLS)可用于此类数据计算,但其与OLR具有同样的缺陷;因此可以考虑使用恒定CV Deming回归方法或Passing-Bablok回归方法分析,并且当样本数足够大的话(>40),Passing-Bablok这种非参方法更加适合用于恒定CV的情况

3. Maxed Variability (Standard Deviation and Coefficient of Variation)

Deming和Passing-Bablok方法均可用于混合变化的回归分析。

如果数据的偏差图中在低浓度时未有明显的偏倚,则恒定CV的Deming回归是一个合适的方法;但Deming方法在高浓度偏差较大时表现并不太好,有时不能消除一些高值标本差异变化较大时的影响,Passing-Bablok方法更适合此类变化回归分析

4. Aberrant Results

假如数据不满足对称的分布,或者说skewed,那么OLR以及Deming是不满足其前提假设,那么Passing-Bablok在这种情况下更加合适一点

5. Nonlinear Distribution

非线性分布,不适用于上述任何一种回归方法的前提假设,则可考虑用偏差图分析

6. Comfidence Intervals

Deming回归的CI建议使用Jackknife方法,Passing-Bablok回归的CI建议使用bootstrap方法计算

Deming and Passing Bablok Regression in R

Deming回归的基本思想也是指定x和y,建立x对y的回归方程。但在计算回归系数的时候思路不同。线性回归中,回归系数的计算是基于y的残差最小,也就是最小二乘回归回归;而在Deming回归中,同时考虑x的残差最小和y的残差最小。

Passing-Bablok回归的思路其实也不难,相当于把任意的两个点,计算其斜率,这样能计算出很多斜率。比如一共4个点,就能计算出6个斜率,然后取6个斜率的中位数,这就是Passing-Bablok回归的斜率估计值

参考自:Deming回归和Passing-Bablok回归介绍

上述提到的各种回归方法都可用mcr包来实现,如:

set.seed(20)
x <- runif(100,0,100)
y <- 1.10*x - 0.001*x^2 + rnorm(100,0,1)*(2 + 0.05*x) + 15

library(mcr)
dem.reg <- mcreg(x,y, method.reg = "Deming", alpha=0.05, method.ci="jackknife")
printSummary(dem.reg)
> dem.reg@para
                EST        SE        LCI      UCI
Intercept 0.3909254 1.8467746 -3.8677445 4.649595
Slope     0.9422886 0.2028027  0.4746247 1.409952

对于Deming回归,还需要考虑λ,即Ratio of Variances,2个比较方法的精密度数据,对应上述函数中的error.ratio参数

接着绘制回归曲线图,plot(dem.reg),或者通过MCResult.plot来修改绘图的各种参数

mcr_Deming

在EP中提到的恒定CV的Deming回归,是指Weighted Deming,也可用mcreg函数来实现

w.dem.reg <- mcreg(x,y, method.reg = "WDeming", alpha=0.05, ,method.ci="jackknife")
w.dem.reg@para

对于Passing Bablok回归,则:

PB.reg <- mcreg(x,y, method.reg = "PaBa", alpha = 0.05, method.ci = "bootstrap")
PB.reg@para

更多的mcreg参数选择可参照其说明文档


对于Passing-Bablok回归再做写补充,其方法假设如下:

  • The variables X and Y are highly, positively correlated (for method comparison only).
  • The relationship between X and Y is linear (straight-line).
  • No special assumptions are made about the distributions (including the variances) of X and Y.

从上述假设可看出,有一个前提是X和Y需满足线性,因此我们需要对数据做个线性假设检验( Test of the Linearity Assumption)

Passing and Bablok (1983) proposed testing this assumption using a modified cusum test.

这个modified cusum test算法过程如下(参考:Passing-Bablok Regression for Method Comparison):

mcr_PB

从上述步骤可看出,我们主要是为了得到H统计量,然后看其在 Kolmogorov-Smirnov分布上的某个显著水平下的P值;由于这个是modified cusum test,因此常规的cusum的R函数无法使用,但是mcr包提供给了calcCUSUM函数用于计算公式中的MaxCusumnNeg,如下所示(当然也可以用代码写计算过程,我这里是偷懒的做法,但是已验证calcCUSUM函数是正确):

PB.reg <- mcreg(x,y, method.reg = "PaBa", alpha = 0.05,
res <- calcCUSUM(PB.reg)

然后Kolmogorov-Smirnov分布可用ks.test()函数源码的一部分代码(pkstwo),如:

pkstwo <- function(x, tol = 1e-06) {
  if (is.numeric(x)) 
    x <- as.double(x)
  else stop("argument 'x' must be numeric")
  p <- rep(0, length(x))
  p[is.na(x)] <- NA
  IND <- which(!is.na(x) & (x > 0))
  if (length(IND)) 
    p[IND] <- .Call(stats:::C_pKS2, p = x[IND], tol)
  p
}

那么计算P值则是:

h <- res$max.cusum / sqrt(res$nNeg + 1)
pvalue <- 1 - pkstwo(x = h)
> pvalue
[1] 0.5175508

从Cusum test的备择假设可看出,当P值大于0.05时,说明X/Y是呈线性的

参考资料

Deming and Passing Bablok Regression in R
【冯仁丰】学习EP9-A3的体会之五:三种回归统计
Deming Regression
https://www.sohu.com/a/119745528_470072
Passing-Bablok Regression for Method Comparison

本文出自于http://www.bioinfo-scrounger.com转载请注明出处