KS检验统计量的扩展应用(CMap)

时间:2022-09-07 18:20:58

KS检验统计量的扩展应用

  KS(Kolmogorov-Smirnov)检验是比较两个经验分布之间是否存在差异。

  我们设X1, X2,…, Xm, Y1, Y2,…, Ym为两个独立随机样本,分别满足假设A1A2,分布函数分别为FG。现在我们想知道的是XY的概率分布之间是否存在差异,我们建立以下假设

H0F(t) = G(t),  for every t

H1F(t)  G(t),  for at least one t

  接下来我们要计算双边双样本统计量J

  首先我们需要获得X,Y样本的经验分布函数:

  对于任意一个实数t, 有

KS检验统计量的扩展应用(CMap)

KS检验统计量的扩展应用(CMap)

Fm(t)Gn(t)分别为样本XY的经验分布函数。

使

d = greatest common divisor of m and n

则统计量J为:

KS检验统计量的扩展应用(CMap)

  为了对于给定的样本X和Y精确地计算统计量J,我们将X1, X2,…, Xm, Y1, Y2,…, Yn 共N=(m+n)个样本观察值从小到大排序,得到Z(1) ≤ … ≤ Z(N),则统计量J的计算公式可以改写为:

KS检验统计量的扩展应用(CMap)

设显著性水平为α,则当J≥jα时拒绝H0

  我们举一个简单的例子,如下图1有两组数据,分别为有反馈和无反馈的观察值(不用弄清楚具体什么含义),两组样本量均为10.

KS检验统计量的扩展应用(CMap)

图 1

m = n = 10, N = (10 + 10) = 20,d = 10,如下图2我们将这20个样本值排序,计算F10(t), G10(t),以及差异的绝对值|F10(Z(i))-G10(Z(i))|

KS检验统计量的扩展应用(CMap)

图 2

我们发现样本差异最大的点在Z(12),

KS检验统计量的扩展应用(CMap)

Z(12)处,观测值为2.69,在有反馈的那组,小于等于2.69的有3个观察值,无反馈的那组小于等于2.69的有9个观察值,它们之间的差异为6/10。统计量J=6.

  我们发现KS检验是计算两个样本之间每个观察值的排序差异,即为一种排序相似性,CMap(生物信息常用的一种数据库)基于KS检验这样的一种性质,设计了一种基于排序的模式匹配算法。

  我们通过一个例子说明这种匹配算法。现在我们有两种数据,一种是药物作用下基因的表达值,一种是疾病状态下基因的表达值,表达值都是一些实数,基因在疾病状态下,某些基因表达量增加,而某些基因可能减少表达。我们的目的是通过这两种数据来看这种药物对这种疾病有没有潜在的治疗可能,我们判断的依据:疾病状态下如果使某些基因(或某个基因)的表达值增加,即不在正常状态下,而这些基因在药物作用下,表达值在正常水平以下,即该药物会抑制这些基因的表达,那么我们可以推断,如果得这种疾病,这些基因表达值高于正常水平,我们再使用那些可以抑制这些基因表达的药物,可能就会使这些基因的表达量降下来,从而达到治病的效果。

KS检验统计量的扩展应用(CMap)

图 3

  我们来计算药物A对疾病D是否有治疗作用。如图3所示,我们将药物A作用下的表达值从小到大排序,疾病D状态下的基因表达值从大到小排序。

KS检验统计量的扩展应用(CMap)

图 4

  图4所示,我们接下来从疾病D的数据中选出前/后S个,然后再与药物A所有基因求交集,得到Num个共同基因(记该集合为B),我们再根据这些基因在药物A下的表达值从小到大排序。接下来,我们用基于ks统计量的方法,计算Num个共同基因在药物和疾病之间的排序相似性。

KS检验统计量的扩展应用(CMap)

  if  a > b   KSTop/Bottom = a

  else       KSTop/Bottom = -b

  if  KSTop * KSBottom < 0,   score = KSTop – KSBottom

  else  score = 0

  其中i表示集合B中的第i个基因,Num表示集合B中基因个数,i_position表示基因i在药物A数据中的排序,geneNum表示药物A的基因总数,即M。

  我们先来看看图5所示top的情况。如果想让a取值大,那么i_position就应该尽可能的小,也就是说,存在一个基因G,该基因在疾病数据中为top,同时在药物数据中也在top的位置,我们称这种模式为top-top模式。如果希望b值较大,则i_position应该尽可能的大,这就说明,存在一个基因G`,它在疾病数据中为top,但在药物数据中为bottom,称这种情况为bottom-top模式。

  接下来我们看看图6的bottom情况。同样的,如果想让a取值较大,那么i_position就应该尽可能的小,也就是说,存在一个基因G,该基因在疾病数据中为bottom,但是在药物数据中处于top的位置,我们称这种模式为top-bottom模式。如果希望b值较大,则i_position应该尽可能的大,这就说明,存在一个基因G`,它在疾病数据中为bottom,同时在药物数据中也为bottom,称这种情况为bottom-bottom模式。

KS检验统计量的扩展应用(CMap)

图 5

KS检验统计量的扩展应用(CMap)

图 6

  根据上面解析,有四种模式,组合后也有四种模式,如下图7所示

KS检验统计量的扩展应用(CMap)

KS检验统计量的扩展应用(CMap)

KS检验统计量的扩展应用(CMap)

KS检验统计量的扩展应用(CMap)

图 7

  其中第二和第三中模式匹配是没有意义的,比如第二种,top-bottom,bottom-bottom模式匹配,它说明有些基因在疾病状态下表达值增加,但是在药物作用下有些也会增加,有些减少,那么我们对该疾病作用该种药物,则会引起一些基因表达恢复正常,但是会使另一些基因表达量继续增加,可能会导致某些症状更严重。第一种匹配,top-top,bottom-bottom,则说明在疾病状态下表达值增加或减少的基因,在药物作用下刚好相反,那么这种药物就有治疗该疾病的潜在可能。第四种匹配:top-bottom,bottom-top,说明,在疾病状态下表达值增加或减少的基因,在该药物作用下也增加或减少,说明该药物的作用和疾病类似,即该药物绝对不能用于治疗该疾病。

  我们要选出第一和第四种匹配,这就要“-b”起作用了,第一种情况下,我们的KSTop = a, KSBottom = -b,第四种情况刚好相反,它们刚好满足异号的条件,所以上面“-b”的作用是为了找出这两种匹配模式。那么我们如何知道药物A是可以治疗疾病D呢,还是加剧病情的呢?因为score=KSTop-KSBottom,所以第一种情况,即治疗疾病,score是正数,而第四种情况,加剧病情,score为负数。并且score的绝对值越大,说明作用效果越明显(明显改善或明显加剧)。

  我们再来看看计算b的公式,它将i减了1,即将集合B中的基因位置向前推了一位,这是为什么呢?我们看下图8的情况。

KS检验统计量的扩展应用(CMap)

图 8

  当基因Q刚好在疾病中位于第N个,在药物数据中位于第M个,也就是说,该基因在疾病状态下被抑制,表达量非常少,而在药物作用下产生促进表达作用,表达量增加很多,很明显,该药物对该疾病的治疗效果应该很好,称为该疾病的特效药的可能性也很高,如果我们在计算b的时候,不减1,那么b=0,后面的异号条件也不满足,那么我们就漏掉了很好的这种情况,为了避免,就将集合B的基因位置向前推一个。

参考

M. Hollander, D. Wolfe, Nonparametric Statistical Methods (Wiley, ed. 2,1999), pp. 178-185.

Lamb J, Crawford E D, Peck D, et al. The Connectivity Map: Using Gene-Expression Signatures to Connect Small Molecules, Genes, and Disease[J]. Science, 2006, 313(5795):1929-1935.

KS检验统计量的扩展应用(CMap)的更多相关文章

  1. 优化与扩展Mybatis的SqlMapper解析

    接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件. 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis ...

  2. PHP mcrypt加密扩展使用总结

    在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件 ...

  3. ks全自动安装centos

    1. 全新安装centos,选择好所需定制包 2. 完成安装后会在root下面生成一个install.log(rpm包列表)anaconda-ks.cfg(下文的ks.cfg基于此文件修改) 3. 将 ...

  4. 深入剖析Classloader&lpar;二&rpar;--根类加载器,扩展类加载器与系统类加载器

    原文地址:http://yhjhappy234.blog.163.com/blog/static/31632832201152555245584/?suggestedreading&wumii ...

  5. combo扩展&colon;禁止手工改变输入框的值

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. BZOJ&lowbar;2142&lowbar;礼物&lowbar;扩展lucas&plus;组合数取模&plus;CRT

    BZOJ_2142_礼物_扩展lucas+组合数取模 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同 ...

  7. &lbrack;转&rsqb;matplotlib - plt&period;rcParams、matshow&sol;cmap&sol;坐标轴设置

    转自:https://blog.csdn.net/qq_30815237/article/details/87903024 1.plt.rcParams plt(matplotlib.pyplot)使 ...

  8. es6基础&lpar;6&rpar;--数组扩展

    //数组扩展 { let arr=Array.of(3,4,6,7,9,11);//可以是空 console.log('arr=',arr);//[3,4,6,7,9,11] } { //Array. ...

  9. DataGrid 扩展

    //扩展表格,支持上传附件 function extendDataGrid(){ //扩展表格方法,合并单元格 ,参数为数组 $.extend($.fn.datagrid.methods, { aut ...

随机推荐

  1. 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。

    目录 说明 功能 截图+视频 关于源码和声明 说明 陆陆续续大概花了一个月的时间,APP算是基本完成了.12月份一直在外出差,在出差期间进行了两次功能完善,然后断断续续修补了一些bug,到目前为止,我 ...

  2. Excel公式设置单元格颜色

    Excel2010 “条件格式"-"新建规则"-"使用公式确定要设置格式的单元格" 公式如下: =OR(H2<=-20%,H2>=20%, ...

  3. JavaScript---认识JavaScipt

    认识JavaScript 1.什么是JavaScript? JavaScript是属于网络的脚本语言,她被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies以及更多的应用,她更是因特 ...

  4. Eclipse&sol;MyEclipse 安装国际化资源文件编辑插件(i18n tools)

    一.JInto 官网:http://www.guh-software.de/index_en.html http://www.guh-software.de/jinto_en.html 下载地址:ht ...

  5. &lbrack;Hibernate&rsqb; - one to one

    两种不同方式的一对一映射关系: 1)配置文件: hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8&quot ...

  6. Python中metaclass解释

    Classes as objects 首先,在认识metaclass之前,你需要认识下python中的class.python中class的奇怪特性借鉴了smalltalk语言.大多数语言中,clas ...

  7. QT完美转换特殊字符的大小写

    Util::ShowMessage(QString::fromUtf8("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ€")); Util::ShowMess ...

  8. C&num;特性和反射

    C#特性和反射 .NET编译器的任务之一就是为所有定义和引用的类型生成元数据描述.除了程序集中标准的元数据外,.NET平台还支持特定(attribute)把更多的元数据嵌入到程序集中. .NET特性扩 ...

  9. HTML(八)HTML meta标签&amp&semi;base标签

    HTML meta元素 标签(meta-information)用于提供页面有关的元数据,除了提供文档字符集.使用语言.作者等基本信息外,还涉及对关键词和网页等级的设定.通过设置不同的属性,元数据可以 ...

  10. C&num;语句 分支语句 if --- else ---

    语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称为“控制流”或“执行流”. 根据程序对运行时所收到的输入的响应,在程序每次运行时控制流可能有所不同. 注意,语句间的标点符号必须是英文标点 ...