1. 介绍
    1. 定义
    2. 起源
    3. 优点
    4. 缺点
    5. 应用领域
  2. 相关
  3. 思想
  4. 实现
    1. Python
  5. 应用
  6. 参考

在统计学中,最大信息系数用于衡量两个变量\(X\)\(Y\)的线性或非线性的强度。来自Berkeley的Terry Speed说它是“a correlation for the 21st century”。但也有人说“MIC的统计能力遭到了一些质疑,当零假设不成立时,MIC的统计就会受到影响。在有的数据集上不存在这个问题,但有的数据集上就存在这个问题。”

介绍

定义

Maximal Information Coefficient (MIC) 最大信息系数,属于Maximal Information-based Nonparametric Exploration (MINE) 最大的基于信息的非参数性探索,用于衡量两个变量\(X\)\(Y\)的线性或非线性的强度。

起源

Reshef, David N., et al. "Detecting novel associations in large data sets." science 334.6062 (2011): 1518-1524. 1

优点

generality:拥有足够的统计样本时,可以捕获广泛的关系,而不限定于特定的函数类型(如线性、指数型、周期型等)。
equitability:对不同类型的噪声程度同等的关系给予相近的分数。

缺点

“MIC的统计能力遭到了一些质疑,当零假设不成立时,MIC的统计就会受到影响。在有的数据集上不存在这个问题,但有的数据集上就存在这个问题。” 2

应用领域

统计学

相关

Maximal Information-based Nonparametric Exploration (MINE) 最大的基于信息的非参数性探索

思想

如果两个变量之间存在关系,则在这二者的散点图中,可以绘制网格(grid)来划分数据进行封装关系。

实现

Python

  • minepy

    http://minepy.sourceforge.net/

    • mic_sample.py

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      from minepy import MINE
      import numpy as np

      np.random.seed(0)
      size = 1000
      X = np.random.uniform(0, 2, (size, 5))
      Y = X[:, 1] + X[:, 2] ** 2 + np.sin(np.pi * 0.5 * X[:, 3]) + \
      np.log(X[:, 4]) + np.random.normal(0, 1)
      X[:, 0] = X[:, 1] + np.random.normal(0, 1)

      mine = MINE()
      mic_scores = []
      for i in range(X.shape[1]):
      mine.compute_score(X[:, i], Y)
      m = mine.mic()
      mic_scores.append(m)

      print(mic_scores)

    • output (possible)

      1
      [0.21735785164297244, 0.21735785164297244, 0.48351888068913057, 0.14723020968106829, 0.31786293970009444]

应用

TODO

参考


  1. Reshef D N, Reshef Y A, Finucane H K, et al. Detecting novel associations in large data sets[J]. science, 2011, 334(6062): 1518-1524.↩︎

  2. http://dataunion.org/14072.html↩︎