最大信息系数(MIC)——大数据时代的相关性分析

2023-05-16

在信息爆炸的当今社会,单靠人力已经不能在无穷无尽的数据中有效的捕获信息。数据挖掘这一学科的兴起也预示着在各行业即将展开一场数据革命。在大数据集中识别两个变量的相关关系越来越重要。数据的相关性又分为线性相关和非线性相关。

利用Pearson相关系数或者Spearman相关系数等可以有效的度量数据的线性相关性,甚至可以通过回归分析确定线性关系和简单非线性关系的数学公式。然而由于自然规律的复杂性,现实世界中的数据之间即使有较强的相关关系,绝大多数也是非线性的而且无法用简单的数学公式表达。为了度量数据间非线性相关性的强弱,科学家们提出了基于阀值相关、相位同步相关、距离相关、互信息等的度量方法。最大信息系数(The Maximal Information Coefficient,MIC)是在互信息的基础上发展起来的,MIC方法能快速通过给不同类型的关联关系进行评估,从而发现广泛范围的关系类型,此算法的作者来自哈佛大学,并在生物学等数据上进行了成功的实验,相关成果公布在Science杂志上。

MIC的优越性

根据MIC的性质,MIC具有普适性、公平性和对称性。所谓普适性,是指在样本量足够大(包含了样本的大部分信息)时,能够捕获各种各样的有趣的关联,而不限定于特定的函数类型(如线性函数、指数函数或周期函数),或者说能均衡覆盖所有的函数关系。一般变量之间的复杂关系不仅仅是通过单独一个函数就能够建模的,而是需要叠加函数来表现。所谓公平性,是指在样本量足够大时能为不同类型单噪声程度相似的相关关系给出相近的系数。例如,对于一个充满相同噪声的线性关系和一个正弦关系,一个好的评价算法应该给出相同或相近的相关系数。

MIC与具有代表性的六种相关性评价算法的普适性对比如下图所示,可以看出MIC不仅可以检测出线性关系,还能够检测出各种非线性关系,并且只要两个变量不独立,它们的MIC系数均为1;而其他评价方法或者只适合检测线性关系,或者没有标准化,或者无法检测出正弦关系、周期性关系等。如果采用没有普适性的算法进行相关性挖掘,那么结果就不是完备的,会令人漏掉许多有用的关联关系。

MIC与几种相关性评价算法的公平性对比见下图。图中横坐标代表噪声程度从0增长到1,纵坐标代表相关系数的大小,图中共有27种不同颜色的散点曲线代表不同的函数关系。从图A可以看出,随着噪声程度的增加,不同相关关系的MIC系数都是均匀降低,MIC可以为不同类型单噪声程度相似的相关关系给出相近的系数。图B-E分别是spearman系数、基于互信息的kraskov系数、最大相关系数、CorGC系数的公平性检测。可以看到,随着噪声程度的增加,这些方法对某些函数关系表现出的健壮性不一致。在大数据相关性挖掘中,数据难免会有噪声和异常点,如果没有良好的公平性,挖掘出的结果也就不再准确并且难以令人信服。利用MIC,可以大大减少数据清洗的麻烦,只要有足够的数据量可以代表总体信息,就可以直接用MIC计算分析。

MIC算法与其它算法的优劣对比:

MIC的国内外应用

MIC通过对变量对(x,y)的散点图进行分割,利用动态规划的方式计算并搜索不同分割方式下所能达到的最大互信息值。最后,对最大互信息值进行标准化处理,所得结果即为MIC。MIC的范围为[0,1],且具有对称性、良好的普适性和公平性。如果变量X与Y独立,则MIC(X,Y)=0;如果X与Y之间具有确定的关系,则MIC(X,Y)=1。作者在其著作中将MIC应用到了四个不同领域的高维数据集中:

(1)来自世界卫生组织(WHO)及其合作伙伴的社会、经济、卫生、政治领域上的数据(357个变量, 63546个变量对)。作者将MIC与互信息的结果进行了对比,发现互信息更善于捕获强线性相关关系,而对于MIC值较高的非线性关系,互信息给出的值较低。利用MIC,作者捕获到了一些有趣的关系模式,例如通过分析一个太平洋岛屿的数据得出女性体重与人均收入具有较强的相关关系,而通过世界总体数据却不能得出这个结果。通过深入调查发现,该岛屿上女性体重是地位的象征!!

(2)酵母菌基因表达谱(6223条基因),此数据来自研究并展示基因表达水平与细胞周期变化关系的经典论文。这组数据集已经用Spearman方法分析过,主要用来确定在细胞周期内基因的转录震荡周期。MIC方法可以同时捕获高频震荡周期基因和低频震荡周期基因,而Spearman只能识别出其中20%的低频震荡周期基因。通过MIC,识别出了许多经典文献中已经发现的基因。

(3)自2008年起的美国职业棒球联盟(MLB)赛季表现统计。经MIC挖掘发现,与球员薪水具有强相关性的前三个因素分别为命中率、总基数和MLV,这一结论与之前传统的分析结论有所不同。利用MIC的结果,球队经理可以更好的选择球员和调整球队薪资。

(4)人体肠道菌落丰富度统计。人类肠道中生存着数以万亿记的细菌, 它们的遗传特性、分布特性等属性关系非常之复杂。MIC从22414860个关系中鉴定出了9472个显著的相关关系。分析前1001个系数值最高的非线性关系,研究者发现了许多意料之外的相关关系。如“不共存性”,一些菌落的丰富会导致另外几种菌落的减少;排名前500的大多数相关关系受宿主的几种特性或习惯的影响,如宿主饮食、性别、血型等。

国内自2013年开始,出现了MIC在不同领域应用的文献:蒋杭进将MIC应用到了脑网络分析中;为了有效的进行人脸特征选择,战泉茹利用MIC作为有效判据应用到了特征选择的单独最优特征组合法中;魏中强等人利用MIC与条件独立性测试,提出了一种新的贝叶斯网络结构学习算法(MICVO);高凤将MIC应用到了股市关联度分析上,捕获到了上证综合指数与深证综合指数具有较强的相关关系(0.8141)。MIC作为一种有用的分析利器,正逐渐的被人们应用于不同的学科领域并正在走向实践!

MIC原理

在有足够的样本量时,MIC的公平性和通用性可以保证它能够捕获各种各样的有趣的关联,而不限于特定的函数类型。也就是说如果X与Y是相关的,它们必定存在这种关系:Y=f(X),我们并不关注f的具体表达式是什么(事实上在大多数情况下,真正求出复杂关系的函数公式是相当困难的),只要X与Y存在f这种映射关系,都有M(X,Y)=1。MIC是基于互信息的,实际上MIC(X,Y)就是Y中能被X解释的信息量的百分比。在理想化的情况下,如果两个变量相互独立,则它们的MIC应该为0。

对于一个有序对的有限集合D,我们可以将D的第一个变量分割成x段,将D的第二个变量分割成y段。我们将这种分割方式称为x乘y分辨率的网格分割。给定一个x乘y的网格G,令表示集合D中的点落在网格G上的概率分布。通过调整x乘y网格的分割方式,可以得到不同的概率分布。

对于一个有限集合

和正整数x与y,定义:

公式中的含义是,对于x乘y分辨率的网格分割,通过调整X轴和Y轴的分割点所能计算得到的最大互信息值。有了在不同分辨率下得到的,我们就可以构造特征矩阵并求得有限集合D的特征矩阵。

定义二维集合D的特征矩阵M(D)是一个无穷矩阵:

经过标准化后的特征矩阵中元素的值均落在[0,1]上。对于标准化的合理性证明,假设网格进行了x乘y分辨率的划分,对有限集合D的第一个变量分割得到的x个格子分别为 

, 对第二个变量分割得到的y个格子分别为 

以二维散点图的角度看,可令表示点落在第i列的概率,表示点落在第j行的概率,而表示点落在第i列第j行的概率。可得:

于是有:

综上,

同理也有

于是

.从而证得

设二维有限集合D的长度为n,则集合D的最大信息系数(MIC)定义为:

其中,网格规模需小于B(n), 

对任意的

成立。

直观的说,MIC是基于这样的思想:如果两个变量之间存在着一种关系,则可以将两个变量组成有限集合D,在集合D的散点图中绘制网格,这些网格可以将散点图中的数据分割。这样有些网格是空的有些则含有散点图中的点,根据点在网格中的分布,可以得到这种分割方式下的概率分布,通过概率分布进行熵和互信息的计算。逐步增大网格的分辨率(比如由2乘2增大到x乘y),在每种分辨率下改变分割点的位置,可以搜索计算得到这种分辨率下的最大互信息值。标准化这些互信息值,以确保不同分辨率的网格之间进行公平的比较。

定义矩阵

其中是在每种分辨率下计算得到的最大互信息标准化值,而MIC就是M中的最大值。MIC计算过程示意图如下:


为了计算M,理论上应该对所有可能的分辨率下的所有网格分割方式进行计算,但是当n很大时,计算量会非常的大。有一种近似计算的方式,即将每种分辨率下纵坐标轴均进行等距离分割,计算出MIC后将a和b交换坐标轴重新计算MIC,取两次计算的最大值为最终的MIC值。令P为x分辨率下的横坐标轴的某种分割方式,令Q为y分辨率下的纵坐标轴的等距离分割方式。令的值为散点图落在P中第i列中的点数,的值为散点图落在Q中第j行中的点数,的值为散点图落在第i列第j行的格子中的点数。于是有: 

而互信息I(P;Q)=H(P)+H(Q)-H(P;Q)。

MIC具有以下优良的性质:

(1)MIC是标准化后的互信息值,取值范围为[0,1];

(2)由于MIC是基于互信息的,所以也具有互信息的对称性质:

(3)若X与Y具有相关关系,则MIC(X,Y)=1;反之MIC(X,Y)=0;

(4)MIC具有良好的稳健性。若X与Y的数据含有噪声,如果X与Y具有相关关系,随着样本量的增加MIC(X,Y)仍然收敛到1;反之MIC(X,Y)仍然收敛到0。

——————————————————————

侵权请告知删除~仅作为知识传播,非商业性质

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最大信息系数(MIC)——大数据时代的相关性分析 的相关文章

  • ubuntu系统samba共享权限设置,一清二楚

    samba共享设置 在root权限下 xff0c 进入root权限的方法 su或者 sudo su root 创建系统用户 useradd m user 设置用户密码 passwd user 创建smb密码 smbpasswd a user
  • curl安装

    一 xff1a windows下安装curl 1 下载windows版本curl安装包 根据你电脑的系统选择32位或64位 因为我的电脑是64位的 所以我选择64位的安装包 curl下载地址 xff1a https curl haxx se
  • OAuth 2.0 概念及授权流程梳理

    本文可以转载 xff0c 但请注明出处https www cnblogs com hellxz p oauth2 process html OAuth2 的概念 OAuth是一个关于授权的开放网络标准 xff0c OAuth2是其2 0版本
  • 基于51单片机的12864液晶时钟C语言程序

    自己写的12864液晶时钟程序 xff0c 经过验证可以使用 xff0c 希望可以为初学者作为参考 include lt reg52 h gt include lt math h gt define uint unsigned int de
  • 耗时两个月开发的弯管机三维模型自动转档软件

    一 系统简介 SmartPipe软件根据用户提供的三维实体管子数据 xff08 stp iges brep文件 xff09 xff0c 通过全自动方式 xff0c 提取管子的轴线数据及几何特征信息 xff0c 生成弯管编程所需的xyz数据以
  • 软件评测-软件测试与软件质量

    软件测试与软件质量 软件测试 xff1a 经典的定义是在规定条件下对程序进行操作 xff0c 以发现错误 xff0c 对软件质量进行评估 因为软件是由文档 数据 及程序组成 xff0c 所以软件测试应该是对软件形成过程的文档 数据以及程序进
  • sobol敏感性分析 matlab代码

    sobol 参数敏感性分析 参考 xff1a csdn https blog csdn net xiaosebi1111 article details 46517409 wiki xff1a https en wikipedia org
  • 软件质量的8个特性

    功能性 功能完备性 功能正确性 功能适用性 性能效率 时间特性 资源利用率 容量 兼容性 共存性 互操作性 易用性 可辨识性 易学性 易操作性 用户差错 防止性 用户界面 舒适性 易访问性 可靠性 成熟性 可用性 容错性 可恢复性 信息安全
  • Bad configuration option: \302\240

    ssh 配置文件时奇奇怪怪的错 xff0c 我碰到的是 xff1a Bad configuration option 302 240 一直不清楚后面这个 302 240 是啥意思 xff0c 后来参考这个回答 xff1a https sta
  • CentsOS系统卡值mysql查询慢

    第一步查看系统是什么占资源 htop F1 h 查看htop使用说明 xff0c F2 s 设置选项 F3 搜索进程 F4 过滤器 xff0c 输入关键字搜索 F5 t 显示属性结构 F6 lt gt 选择排序方式 F7 减少进程的优先级
  • 精美多功能翻页时钟源码 灵感来源于fliqlo

    介绍 xff1a 一个翻页时钟的网页 xff0c 灵感来源于fliqlo 外表相似 xff0c 功能不同 功能 xff1a 看时间看秒表倒计时 说明 xff1a F11 全屏 ctrl 43 43 或 调整设置框大小 单击 或 空格 可以暂
  • vscode 报错ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“

    1 报错信息 Unable to start debugging xff0c 如下截图所示 网上找了很多资料 xff0c 发现大部分解释都说是 xff0c 库的问题 xff0c 拷贝libstdc 43 43 6 dll 文件后 xff0c
  • 关于Ip首部最大长度(60)和最小长度(20)的计算

    第一次写博客 xff0c 可能语言组织的不是特别好 xff0c 因为是个人理解 xff0c 有不正确的地方清指出 关于ip首部长度最大值5字节和60字节的计算 首先声明几个单位 ip数据报中的单位是 位 xff08 代表 32bit xff
  • Dev-C++ 5.11 调试程序 查找程序错误

    相信大家看到我这篇博客的时候还不怎么会用dev c 43 43 调试程序吧 xff0c 那么我就给大家详解一下 xff08 切记 xff1a 要调试的程序一定要能够通过编译 xff0c 一定要通过 xff0c 一定要通过 xff0c 一定要
  • NVM安装与使用

    NVM安装与使用 介绍 nvm是nodejs的版本管理工具 xff0c 可以安装和切换不同的版本nodejs npm是依赖包的管理工具 1 下载NVM GITHUB https github com coreybutler nvm wind
  • maven

    http mvnrepository com 打开网面 xff0c 搜索要查询的jar包名 xff0c 直接复制配制文件到你自己的pom xml中即可 xff0c 如 xff1a lt dependency gt lt groupId gt
  • 密集脚集成块的手工焊接方法

    电子爱好者在进行电子设计制作时 xff0c 最头痛的是焊接密集脚贴片集成块 如 VS1003的焊接 xff0c 往往感到无从下手 下面根据我设计制作时的经验 xff0c 将具体的手工操作方法介绍给大家 xff0c 希望能助你一臂之力 所需辅
  • python批量新建文件、批量保存图片、批量创建文件夹

    python批量新建文件 批量保存图片 批量创建文件夹 新建文件 xff1a 假设我要新建10个txt文件 for i in range 10 这里的 指代的是当前文件夹 i表示文件的名称 f 61 open 39 s 39 i 43 39
  • 操作系统——实验一.进程管理

    include 34 conio h 34 include 34 stdio h 34 include 34 stdlib h 34 struct jincheng type int pid int youxian int daxiao i
  • 计算机中堆栈的概念

    这两天学习win32的API xff0c 了解到了计算机中堆栈的概念 xff0c 相信很多程序员有时候也弄不明白计算机中的堆栈的数据结构 再次为堆栈做一下详细解析 在英文中 xff0c 我们管栈称为stack xff0c 管堆称为heap

随机推荐