检测非线性相关性的MIC算法能不能直观的解释一下?

机器算法验证 相关性 非参数 生物信息学 信息论 互信息
2022-01-22 02:01:31

最近,我读了两篇文章。Speed 的文章是关于相关性的历史的,Reshef 等人的文章。是关于一种称为最大信息系数(MIC)的新方法。我需要您的帮助来理解 MIC 方法来估计变量之间的非线性相关性。

此外,MIC 在 R 中的使用说明可以在作者的网站上找到(在下载下):

我希望这将是一个讨论和理解这种方法的好平台。我的兴趣在于这种方法背后的直觉以及如何以作者所说的方式扩展它:

...我们需要扩展MIC(X,Y)MIC(X,Y|Z). 我们将想知道需要多少数据才能获得 MIC 的稳定估计,它对异常值的敏感程度,它将错过哪些三维或更高维的关系等等。MIC 是向前迈出的一大步,但还有更多的步骤需要采取。



引文
速度,T. (2011)。21 世纪的相关性科学,334(6062),1502-1503。

Reshef,DN,等人。(2011)。检测大型数据集中的新关联科学,334(6062),1518-1524。

3个回答

这不是说这是发表在我们不确定其统计同行评审的非统计期刊上吗?这个问题由 Hoeffding 在 1948 年解决(数学统计年鉴 19:546),他开发了一种不需要分箱也不需要多个步骤的简单算法。《科学》文章甚至没有提到霍夫丁的工作。这在包中的 Rhoeffd函数中已经存在Hmisc很多年了。这是一个示例(输入example(hoeffd)R):

# Hoeffding's test can detect even one-to-many dependency
set.seed(1)
x <- seq(-10,10,length=200)
y <- x*sign(runif(200,-1,1))
plot(x,y)  # an X
hoeffd(x,y)  # also accepts a numeric matrix

D
     x    y
x 1.00 0.06
y 0.06 1.00

n= 200 

P
  x  y 
x     0   # P-value is very small
y  0   

hoeffd使用 Hoeffding 方法的相当有效的 Fortran 实现。他的测试的基本思想是考虑 X 和 Y 的联合等级与 X 的边际等级和 Y 的边际等级的乘积之间的差异,并适当缩放。

更新

从那以后,我一直与作者通信(顺便说一句,他们非常好,并且对其他想法持开放态度,并且正在继续研究他们的方法)。他们最初在手稿中提到了霍夫丁,但由于篇幅不足而删掉了(现在很遗憾)。虽然霍夫丁D测试似乎在他们的示例中检测依赖性方面表现良好,它没有提供符合他们的人眼能够的方式排序依赖性程度标准的指标。

在即将发布的 RHmisc包中,我添加了两个与D,即平均值和最大值|F(x,y)G(x)H(y)|这是有用的依赖度量。然而,这些措施,如D, 没有 MIC 的创建者所寻求的财产。

MIC方法基于互信息(MI),它量化了联合分布之间的依赖关系XY如果联合分布是什么XY是独立的(参见,例如,维基百科条目)。在数学上,MI 定义为

MI=H(X)+H(Y)H(X,Y)
在哪里
H(X)=ip(zi)logp(zi)
是单个变量的熵,并且
H(X,Y)=i,jp(xi,yj)logp(xi,yj)
是两个变量的联合熵。

作者的主要思想是将数据离散到许多不同的二维网格上,并计算表示每个网格上两个变量的互信息的归一化分数。分数被标准化以确保不同网格之间的公平比较,并在 0(不相关)和 1(高相关)之间变化。

MIC 被定义为获得的最高分数,它表明两个变量的相关性有多强。事实上,作者声称对于无噪声函数关系,MIC 值与决定系数相当(R2)。

我发现两篇很好的文章更清楚地解释了 MIC 的概念。特别是博文“大规模数据探索,MIC-style ”,以及 Gelman 的博文“ Mr. Pearson, meet Mr. Mandelbrot: Detecting Novel Associations in Large Data Sets ”。

正如我从这些阅读中了解到的那样,您可以通过探索不同的网格组合来放大两个变量之间关系的不同复杂性和规模;这些网格用于将二维空间拆分为单元格。通过选择包含有关单元如何划分空间的最多信息的网格,您正在选择 MIC。

我想问@mbq 他是否可以扩展他所谓的“plot-all-scatterplots-and-peak-those-with-biggest-white-area”和不真实的复杂性O(M2).