对于非正态分布的数据,当样本量不够大(如小于30)时,Wilcoxon 检验的功效较低。如何提高非参数检验的功效,这是个不容易的问题。Wilcoxon是一个特异度很高的检验方法,但小样本时灵敏度较低。如果简单放宽检验水准,将会迅速损失特异度,并不是上上策。小样本的差异分析一直是个头疼的问题,对于两组样本量都少于30的情况,各类非参数检验都很低效。除了尝试对数据log或开根号转化等数据预处理技巧外,是否能直接从非参数检验体系本身对检验功效进行优化?本文可能有点纠结边际优化效果(毕竟特别有价值的特征往往容易被Wilcoxon检验发现的),对于检验灵敏度要求不高的情况,可直接忽略本文的观点。

有论文(见参考资料)指出,某些小样本情况下Kolmogorov–Smirnov检验可能优于Wilcoxon检验。严格来说,Wilcoxon检验和KS检验的功效对比需多次重复模拟进行评估,此处不再赘述(见参考资料的论文),本文仅以一个简单的典型示例呈现。笔者根据Wilcoxon的特点和KS检验的优势(对分布敏感),构造了如下的数据:

A组中12个样本的X分子表达量为:1,6,12,18,19,20,22,23,24,26,27,28

B组中13个样本的X分子表达量为:2,3,4,5,7,8,9,10,11,13,21,25,29

可视化如下:

直观来看,两组应当是有显著差异的。

分别检验两组数据的正态性,发现符合正态分布。因此使用 t 检验,结果 p=0.038,佐证了我们对数据的直观感受。

以分组为结局变量,X的表达量为自变量,建立Logistic回归模型,结果:OR=0.90,p=0.047。值得注意的是,将上述Boxplot 旋转90度后,直观感觉 似乎能较好地拟合出 Logistic的S型曲线。

以整体的中位数13为界值,划分为高表达和低表达,进行Fisher精确检验,结果 p=0.017.

频率学派过渡依赖于p值,我们用贝叶斯学派的观点来看看这一组数据。事先假定这是表达量count计数资料(离散分布),由于数据的方差(70左右)明显大于均值(均值小于30),存在overdispersion,不太符合Poisson分布,可考虑使用负二项分布。为了尽量减少主观影响,我们假定两组参数均值mu的先验都为0~30之间的均匀分布,参数alpha的先验分布都为0~10之间的均匀分布,使用MCMC采样模拟,得到两组参数的后验分布如下:

且A组均值mu_1 大于 B组均值 mu_2 的概率为:96.0%

接下来我们看看非参数检验的表现如何。

使用Wilcoxon检验,得到 p=0.068,保守的Wilcoxon不能以0.05的水准得到显著差异。在进行biomarker筛选的时候很容易被Wilcoxon误导。

我们尝试采用KS检验,结果 p=0.040,诶,可以。个人一直感觉KS检验也比较严格保守,但这种情况确实能为非参数检验挽回一些颜面。

可能有人认为,既然数据服从正态分布,何不直接使用 t 检验呢?我们如果将A组最后两个样本点的值27和28改为26.1和26.2,则A组的数据不再服从正态分布(哈哈,有点夸张,这个演示稍微极端一点,但确实正态检验结果认为不再服从正态分布)。这个时候还使用 t 检验是会被质疑的,因此不得不使用非参数检验方法。再次进行Wilcoxon和KS检验,结果不变(毕竟秩次没发生变化)。

为何不直接转向贝叶斯推断的怀抱,上述例子中笔者假定该计数资料符合负二项分布,但如果为连续分布数据且分布形式多种多样(如代谢组学数据),难以统一判断分布类型时,贝叶斯推断好像有点吃力(主要是笔者水平还不够)。

题外话:对于RNA-Seq的count数据,可以直接使用 edgeR、DESeq2及limma等各种工具包(edgeR和DESeq2基于负二项分布广义线性模型处理count数据,limma基于线性模型、在 t 检验的基础上改进),但其实各个工具之间并没有达到特别好的共识,检验的灵敏度和特异度各有千秋。limma包本来用于处理芯片数据的(芯片数据首选方法),后来有论文证明(limma包的RNA-Seq部分的参考资料),将count数据转成logCPM,也可以使用limma处理。由于CPM、FPKM及TPM等数据本质上是类似的,因此limma包也可以处理TPM类型的数据,但建议使用log预处理。可以参考:RNAseq数据,下载GEO中的FPKM文件后该怎么下游分析

另外,对于将连续变量转成分类变量再进行卡方检验或Fisher精确检验的思路,存在争议的地方在于划分所使用的界值(中位数并不总是有效,而直接优化最佳界值也容易被质疑),并且笔者观点是尽量避免将连续变量压缩成二分类变量(许多大佬都认为粗鲁地压缩容易丢失大量的信息)。同样作为分布检验的方法,KS检验虽然不是最佳选择,但勉强还可以代表大家出战。

但注意,KS检验可能会找到一些奇奇怪怪的分布的特征,最好剔除多峰分布的特征(多峰分布的特征难以解释)。另外,KS检验对相同秩的情况也处理不佳(相同秩估计不准 简直是许多非参数检验的共病)。

本文的示例只是其中一种典型的代表,实际(小样本)数据中这样的情况并不罕见。笔者认为,小样本数据分析时,可在Wilcoxon检验的基础上,辅之以KS检验,从而提高非参数检验的功效,即:Wilcoxon检验与KS检验分别筛选biomarker后,再取并集作为差异分析的结果,可能可以帮助挖掘潜在有用的biomarker(记得确实有一些综述总结到KS检验可以作为筛选biomarker的方法之一)。

上述的例子中,众多检验方法都认为两组很可能存在差异,而Wilcoxon检验则过于保守估计,这大概是Wilcoxon的其中一个缺陷。Wilcoxon的另一个缺陷是:丢失了数值的绝对大小,只保留了相对大小的信息。下面举个小样本中简单而又极端的栗子。

A组的3个病例的X分子表达量为:1, 2, 3

B组的3个病例的X分子表达量为:40, 50, 60

使用Wilcoxon检验 p=0.1,而使用 t 检验则 p=0.01。

因此,提高非参数检验功效的另一个思路是:重新引入绝对数值大小。这可能是优化非参数检验功效极为重要的一方面。

参考资料:

曾艳等. 完全随机设计两样本的Wilcoxon检验与KS检验功效比较. 中国卫生统计学.2011

提高非参数检验功效的潜在方法相关推荐

  1. APS跟踪和提高生产效率的五种方法

    对于大多数寻求进一步发展并吸引新客户的制造商来说,质量改进是一个共同目标.交付出色的产品才是真正通过回答消费者的价值而带回客户的东西. 跟踪和提高生产效率的五种方法 这就是为什么跟踪您的生产效率并提高 ...

  2. 提高工作绩效的三大方法

    提高工作绩效的三大方法 限制干扰 根据Udemy In Depth:2018 年工作场所分心报告:大多数员工 (84%) 估计他们能够在最初分心后大约半小时内完全重新集中注意力. 根据 Udemy 的 ...

  3. 如何提高邮件投递能力-提高邮件群发能力的方法

    作为一个邮件营销专员,我们每天想的应该是如何提高邮件的投递能力.下面博主结合自己的一些营销经验,给大家介绍一下提高邮件群发能力的方法. 首先,要保持一个较低的投诉率.因为投诉率涉及到一个投递成功率,一 ...

  4. edge浏览器运行不流畅怎么办 提高edge浏览器速度的方法

    edge浏览器是win10系统的专用浏览器,它代替了慢吞吞的IE,很多人觉得edge浏览器运行速度快,但是有时候浏览某些网站的时候会不流畅,所以怎么提高edge浏览器的运行速度呢,小编就来教教大家. ...

  5. [转]提高PR值的具体方法

    什么是PR? PR值全称为PageRank.PageRank(网页级别)是Google用于评测一个网页重要性的一种方法.在揉合了诸如Title标识和Keywords标识等所有其它因素之后.Google ...

  6. 提高数据库效率的一些方法--eg:大批量循环插入数据的简化

    提高数据库效率的一些方法--eg:大批量循环插入数据的简化 作者及来源: 小奈鲁 - 博客园    收藏到→_→: 摘要: 提高数据库效率的一些方法--eg:大批量循环插入数据的简化 "提高 ...

  7. 大蒜敷脚心涌泉穴的功效和具体方法

    大蒜是我们常常吃到的一种调味料,大蒜食用价值很高.那么,用大蒜敷脚心涌泉穴的功效和具体方法是怎样的呢? 经常吃大蒜是可以起到抗菌消炎的功效,此外大蒜在防癌抗癌上面也是作用显著,其实大蒜除了可以直接食用 ...

  8. mallat算法分析及c语言实现,一种基于Mallat算法提高小波包分解速度的方法与流程...

    本发明涉及信号处理技术领域,具体涉及一种在mallat算法的基础上利用半小波包和改进卷积过程算法提高小波包分解速度的方法. 背景技术: 随着信息技术的发展,探索人体生理问题的研究深入,研究脑电信号,并 ...

  9. Win8怎么加快桌面图标刷新速度?提高图标刷新速度的方法解析

    本文来自BX教程网www.benxitj.com:整理编辑 - 原文出处 www.benxitj.com/Article/?11804/62.html 转载注明 window8 很多时候由于各种内存或 ...

  10. linux 更改网络速度,教你一招 提高Linux操作系统网速方法(转)

    教你一招 提高Linux操作系统网速方法(转)[@more@] 学校一个电子教室通过ADSL宽带"猫"上网,系统为RedHat 9.0,但在上网时有些网页打不开,而且网速不快.有同 ...

最新文章

  1. python行与行之间必须对齐_Python行和缩进
  2. ffmpeg文件拼接
  3. Kubernetes 选择 IPVS
  4. java简述对象的组合_Java程序运行和对象创建过程简述
  5. QlikView Script -组合键处理
  6. 手摸手教你使用vue-cli脚手架-详细步骤图文解析[vue入门]
  7. java设计按月每天签到_java实现app签到功能
  8. matlab如何测两点的角度_【邢不行|量化小讲堂系列01-Python量化入门】如何快速上手使用Python进行金融数据分析...
  9. css之div兼容性问题
  10. 2021年电工杯B题附代码、附论文——光伏建筑一体化板块指数发展趋势分析及预测
  11. Android Storage Manager
  12. 服务器打完补丁无法进入系统,win7系统电脑更新补丁后无法进入系统怎么办
  13. 远不止三色,图片被压扁了,用Python的Tkinter做一个既高颜值又好用的计算器
  14. 华为云对象存储obs文件上传
  15. VCS+dve+verdi仿真
  16. Windows下安装JDK11(详细)
  17. android 拍照 华为,【华为MateRS保时捷版评测】拍照:徕卡三摄登顶DxOMark名副其实_华为 Mate RS保时捷版_手机评测-中关村在线...
  18. EXCEL随机函数实例
  19. 关于结构体类型的讲解
  20. dnf辅助新手制作_网络辅助功能的新手介绍

热门文章

  1. 函数-6已知输入为一个列表,列表中的元素都为整数,我们定义元素筛选函数为foo,功能是检查获取传入列表对象的所有奇数位索引(注意列表的索引是从0开始的)对应的元素,并将其作为新列表返回给调用者。
  2. Apache的管理优化
  3. Windows makecert生成代码签名证书
  4. STM32 MDK片外FLASH下载算法制作 —— 基于QSPI(W25Q32)
  5. 哈佛幸福课 24人格力量测试
  6. 优启通制作系统u盘_优启通u盘启动盘制作工具BIOS+UEFI三分区双启版
  7. (1) 创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。 (2) 对Jane Smith操作。 存入 100 元,再
  8. 小小光纤承载尖端技术 “中国制造”引领行业标准
  9. C语言_【学习笔记】二元一次方程的虚根
  10. 讲座记录——科技论文写作及科研方法