计算相互信息

问题描述:

假设M是一组对象m,每个对象都有属性X和Y.现在,如果X和Y对于给定的m只能有一个值(即X,Y是随机变量P(X = x_i | M = m_i),P(Y = y_i | M = m_i)),可以计算X和Y的互信息。但是如果X可以一次有多个结果会怎么样呢?即对于m_3 X = {x1,x2} - 通常X的结果是所有可能结果的子集。在这种情况下,可以测量互信息还是其他衡量依赖性的方法?计算相互信息

是否有可能将X分解为二元随机变量X_1,X_2等,其中X_1 = 1 iff X包含x1,否则X_1 = 0,然后对所有组合i,j计算I(X_i,Y_j)该信息为了得到我(X,Y)?

谢谢。

例子:

m_1: X={a,b}, Y={x,y}; m_2: X={c}, Y={z,x} 

如果我没有错,前提你设置:

If M is a set of objects { m1, m2, ... }, 
and each mi has two attributes X, Y, 
and X, Y can be a set of { x1, x2, ... } , { y1, y2, ... } respectively 

,那么你要定义

*(X, Y) based on each mi's X, Y 

那么,这增加了复杂性在计算方面显着的问题,但你仍然可以进行相同类型的相关,除了不是关联t wo值X和Y,则表示两个子集X和Y相关联。

+0

让V_X设置X的所有可能结果。我想将互信息的定义扩展为X是V_X的任何子集的情况。 – user574959 2011-02-08 10:27:22

根据集合的含义以及要使用的互信息,您可以将这些集合视为原子值。那么你的事件空间就是V_X的powerset,你可以用通常的方式计算这个较大事件空间的相互信息(比特串)。

有互信息的多变量概括,如交互信息或总相关性,但我认为他们不是你想要的。你可能更愿意查看其他非信息理论多元相关度量。