以下均参考自EP28-A3C (Defining, Estimating, and Verifying Reference Intervals in the Clinical Laboratory)
以下只是笔记,可能不会详细描述细节
Reference interval一般是一个范围值,假如我们想知道95%的区间,则相当于估计2.5%(lower)和97.5%(upper)分位数。在医学上,一般取upper作为主要的reference limit
对于reference interval的估计,EP给出了两个统计方法:
- Nonparametric procedures,不对数据的分布有特定的要求,适合统计计算资源较少的实验室;但是对于样本量有一定的要求,若不满足则需考虑其他parametric方法或者更加robust的方法
- Parametric procedures,一般需要将数据转化成符合正态分布(一般reference values都不怎么符合正态分布),并做正态检验确定,最后使用parametric的统计方法
对于上述的parametric method,一般推荐使用robust的方法;此方法可以认为介于parametirc和nonparametric方法之间,因此不受限于样本量的限制,同样也不需要reference value符合正态分布
对于上述的nonparametric method,通常样本量的最低要求为120例(当估计90% confidence limits);如果实际情况允许的话,当估计95% confidence limits时,需要146样本量,当估计99% confidence limits时,需要210样本量
如果数据中出现outliers,首先考虑重测,若还是outliers则考虑删除;对于nonparametric method,需保证删除outliers后的样本量仍旧满足至少120例
对于识别outliers的方法,首先考虑visual检查样本的频率分布图,接着再考虑统计学方法,如下:
- Dixon,计算D/R比例,一般以1/3作为阈值;不需要数据满足正态分布,但不太适用于2-3个outliers出现同侧的情况
- IQR方法,使用比较常见的 Tukey's interquartile fences 方法,但是这个方法要求数据集满足正态分布
- Horn,在IQR基础上,通过Box-Cox转化使得数据满足正态分布,这个相比IQR更加实用点
建议不要单独估算subclass的参考区间,除非:
the difference between the subclass means is at least 25% as large as the 95% reference interval estimated from combined (overall) sample of reference subjects
若想评估是否需要按照某个影响因素划分reference interval,可以考虑使用Z-test的方法做下测试:
- 首先计算Z统计量
- 接着计算Z*=sqrt(3(n1+n2)/240)
- 然后若Z超过Z*,则需要划分
- 也可以用标准差的方法,若s2超过1.5s1,则需要划分
上述判断是否划分的方法均需要数据满足正态分布,但可以通过另外一种方法来估计,比如查看两个subclass超出相互reference limit末端的比例
以上方法也可用于比较一个实验室的reference interval是否适用于另外一个实验室
Reference interval及其confidence interval的计算主要分成nonparametric method和robust method两种
前者原理比较简单,主要是根据rank排列,然后根据样本数和分位数计算对应的rank值,然后找出rank值在数据中相对应的数值
如:想估计95%的reference interval,样本数n为120,则lower limit的rank值r1=0.025*(120+1)=3.025
,约为3;同理upper limit的rank值r2=0.975*(120+1)=117.975
,约为118;最后根据3和118在数据列中找出对应的值即可
后者robust method相对比较复杂,手动编写计算过程需要参照文档的公式;若不想编写代码,可用现成的工具和R包:
- MedCalc statistical software,收费哈
- referenceIntervals,R包(感谢R包作者,经验证与EP里一致)
以上是Reference interval的计算方法,至于confidence interval,EP也对其的计算过程也做了详细的说明
其中需要注意的是:对于nonparametric method,其有样本量要求,所以在置信区间的计算过程中,若样本量不达要求,也是无法计算的;此时最好还是使用robust的方法
对于上述的计算,建议参考MedCalc statistical software帮助文档来理解计算过程中的参数,然后使用referenceIntervals包来做最终的计算(因为免费哈,不然上medcalc也行的)
比如nonparametric method,若想reference interval和confidence intervel一起计算,则用refLimit
函数,不然对于前者只用nonparRI
函数即可:
referenceIntervals::refLimit(data$test, out.method = "horn", out.rm = FALSE,
RI = "n", CI = "n", refConf = 0.95,
limitConf = 0.95, bootStat = "basic")
对于robust method,可只用robust
函数,或者:
referenceIntervals::refLimit(d, out.method = "horn", out.rm = FALSE,
RI = "r", CI = "boot", refConf = 0.95,
limitConf = 0.95, bootStat = "basic")
假如想将新的数据应用于旧的reference interval,首先需要考察下两个数据集是否有具有可比性,这时可以参考EP09,比如使用线性回归的方法,若线性一致性很好,就可以根据回归方程将旧的reference interval转化为新的,以便用于新的数据集
假如想使用其他实验室的reference interval,而自身没有已建立的reference interval,则可以考虑将自身的数据再其他的reference interval上做验证,如下:
- subjective assessment,主观评价
- 相当小样本(n=20例)的统计检验验证,前提地理位置/人口统计等因素没有重大的差异;然后测20例,少于10%的例数落到参考区间外;此外还可以尝试使用M-W U test,S-T test以及K-S test等方法,详情见EP文档
- 大样本(n<120例)的参考区间评估,将较少的样本(n<120例)与较大样本集(已建立reference interval)作比较,做类似于subclass的比较分析,考察当两个数据集作为一个population下,是否存在subclass。或者robust的方法来建立一个reference interval(但区间会较窄)
以上为随笔,思路较为混乱,只供参考。。。。
本文出自于http://www.bioinfo-scrounger.com转载请注明出处