您的位置:首页 > 其它

Maximal Information Coefficient 最大信息系数

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

介绍

定义

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

起源

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

优点

generality:拥有足够的统计样本时,可以捕获广泛的关系,而不限定于特定的函数类型(如线性、指数型、周期型等)。

equitability:对不同类型的噪声程度同等的关系给予相近的分数。

缺点

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

应用领域

统计学

相关

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

思想

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

实现

Python

minepy

http://minepy.sourceforge.net/

mic_sample.py

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)

[0.21735785164297244, 0.21735785164297244, 0.48351888068913057, 0.14723020968106829, 0.31786293970009444]


应用

TODO

参考

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.

http://blog.sciencenet.cn/blog-830496-872998.html

http://dataunion.org/14072.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: