从PCC到MIC(2)

最大信息熵系数MIC

MIC与2011年提出,它是用于检测变量之间线性或非线性相关性的最新方法。
原文参照:
Detecting Novel Associations in Large Data Sets
用于进行MIC计算的算法将信息论和概率的概念应用于连续型数据。
首先给出熵的的概念:一个衡量给定概率分布的不确定性的度量。
从PCC到MIC(2)_第1张图片
比如掷骰子,一个骰子是正常的,一个骰子的六面不是1点就是2点。那么投一万次,第一个骰子的结果1-6点出现的概率都是1/6,而第二个骰子永远只会出现1和2,那么,第一个骰子信息熵就更大,出现结果的不确定性就越大。
而交叉熵则用来度量两个概率分布间的差异信息。
从PCC到MIC(2)_第2张图片
两个相同概率分布之间的交叉熵等于其各自单独的熵。但是对于两个不同的概率分布,它们的交叉熵可能跟各自单独的熵有所不同。

这种差异,或者叫「散度」可以通过 KL 散度(Kullback-Leibler divergence)量化得出。
在这里插入图片描述
当两个分布相同时,KL散度值为0。KL散度的作用之一是计算两个变量的互信息MI。
互信息MI可以定义为“两个随机变量的联合分布边缘分布之间的KL散度”,即两个信息间的相似程度。如果变量相同,MI值为0。如果不同,MI为正数,并且差异越大MI值越大。

首先明白联合概率,X和Y的联合概率就是二者同时发生的概率
其次要明白边缘分布,是指不考虑其他变量而只关注某一特定变量的概率分布。若两变量独立,二者边缘概率的乘积即为二者同时发生的概率。
现在让我们回到抛硬币的例子。如果两枚硬币相互独立,边缘分布的乘积表示每个结果可能发生的概率,而联合分布则为实际得到的结果的概率。

如果两硬币完全独立,它们的联合概率在数值上(约)等于边缘分布的乘积。若只是部分独立,此处就存在散度。

这个例子中,P(X=H,Y=H) > P(X=H) × P(Y=H)。这表明两硬币全为正面的概率要大于它们的边缘分布之积。

联合分布和边缘分布乘积之间的散度越大,两个变量之间相关的可能性就越大。两个变量的互信息定义了散度的度量方式。
在这里插入图片描述
X 和 Y 的互信息等于「二者边缘分布积和联合分布的 KL 散度」
此处的一个重要假设就是概率分布是离散的。那么我们如何把这些概念应用到连续的概率分布呢?

有一种方法是连续值离散化,比如“分箱算法”
从PCC到MIC(2)_第3张图片
而用箱子表示连续值,问题在于到底要多少个箱子(bin)?首次提出MIC的论文给出的方法是:穷举。
即尝试不同箱子个数并观察哪个会在变量间取得最大的互信息熵,但有两个问题:

  1. 要试验多少个箱子?
  2. 如何公平比较不同箱子数目之间的MI值?

第一个问题理论上无法实现,但论文给出一个近似解法,给出了可试箱子数目上限:
在这里插入图片描述
最大可用箱子数目由样本数N决定。
对于问题2,有一个简单做法是归一化,通过将每个 MI 值除以在特定箱子数组合上取得的理论最大值来完成。
从PCC到MIC(2)_第4张图片
互信息可以通过除以最小的箱子数的对数来归一化。
最大的归一化互信息就是 X 和 Y 的最大信息系数(MIC)。
参考
测试各算法在人工生成数据上的处理能力代码
本文参考 机器之心 公众号
MIC与其他相关性算法对比、python例子、更多参考

你可能感兴趣的:(统计学)