最大信息系数(Maximal Information Coefficient, MIC)是一种用于量化两个变量之间依赖关系强度的统计量
,它能够在不同类型
的关联中(如线性、非线性、周期性等)提供一致的度量。
MIC算法是由David N. Reshef等人在2011年提出,其目的是为了克服传统相关系数(如皮尔逊相关系数)仅能描述线性关系的局限性。
MIC算法的公式
MIC的定义基于互信息(Mutual Information, MI)的概念,它试图找到一个最优的二维直方图(或称为网格),在这个网格下,两个变量之间的互信息达到最大值。
互信息度量的是两个随机变量之间的依赖程度
,当两个变量完全独立时,互信息为零;反之,当两个变量完全依赖时,互信息达到最大。
MIC的计算公式可以表示为:
MIC ( X ; Y ) = max a ∗ b < B [ I ( X ; Y ∣ a × b ) log 2 min ( a , b ) ] \text{MIC}(X;Y) = \max_{a*b<B} \left[ \frac{I(X;Y|a\times b)}{\log_2 \min(a,b)} \right] MIC(X;Y)=a∗b<Bmax[log2min(a,b)I(X;Y∣a×b)]
其中,
- X X X 和 Y Y Y 是要分析的两个随机变量。
-
I
(
X
;
Y
∣
a
×
b
)
I(X;Y|a\times b)
I(X;Y∣a×b) 是在将
X
X
X 和
Y
Y
Y 分别
划分为
a a a 和 b b b 个箱的网格下, X X X 和 Y Y Y 的互信息。
- a a a 和 b b b 是网格在 X X X 和 Y Y Y 方向上的划分格子的个数。
-
B
B
B 是一个
预定义的阈值
,通常选择为数据点数量的根号或分数幂次,以控制网格的复杂度。 - log 2 \log_2 log2 表示以2为底的对数。
- min ( a , b ) \min(a,b) min(a,b) 是 a a a 和 b b b 中较小的一个。
MIC算法的步骤
- 初始化: 选择一个 B B B 值,通常是数据点数量 N N N 的平方根或0.6次方,来限制网格复杂度。
- 网格搜索: 在所有可能的
a
×
b
a\times b
a×b (
a
∗
b
<
B
a*b<B
a∗b<B )网格中计算
互信息
I ( X ; Y ∣ a × b ) I(X;Y|a\times b) I(X;Y∣a×b) 。 - 计算MIC: 对于每个网格,计算 I ( X ; Y ∣ a × b ) log 2 min ( a , b ) \frac{I(X;Y|a\times b)}{\log_2 \min(a,b)} log2min(a,b)I(X;Y∣a×b) ,并选取所有可能网格下的最大值作为 MIC 的值。
公式解释
- 互信息
I
(
X
;
Y
∣
a
×
b
)
I(X;Y|a\times b)
I(X;Y∣a×b) 描述了当
X
X
X 和
Y
Y
Y
被划分为特定网格后,两个变量之间依赖程度的信息增益。
- 除以
log
2
min
(
a
,
b
)
\log_2 \min(a,b)
log2min(a,b) 这部分的作用是
标准化
,确保 MIC 的值在 [0,1] 之间。这是因为随着网格细化,互信息有可能无限增长,因此需要除以一个与网格复杂度相关的因子来进行归一化
。 - 取最大值 确保了 MIC 能够捕捉到
最能
揭示两个变量之间关联模式的网格结构。
MIC的值越接近1,表示两个变量之间的关系越强,无论这种关系是线性的、非线性的还是复杂的周期性关系。
相反,如果 MIC 接近0,则表示两个变量几乎独立。
总结
MIC算法通过最大化互信息并标准化结果,提供了一种通用的方法来评估任何类型的数据关系。
它不仅适用于连续变量,也适用于离散变量,甚至混合类型的数据。