R语言计算两个一维数组之间互信息的代码,主要是联合分布概率不会算,H(x,y)?

理由
举报 取消

I(x,y)=H(x)+H(y)-H(x,y),H是熵,比如x=c(0,1,1,1),y=c(1,1,1,1) 求着两个向量之间的互信息。p(x,y)怎么求

2017年6月18日 3 条回复 1927 次浏览

发起人:皮皮果果 初入职场

温和善意狠辣决绝的小驴

回复 ( 3 )

  1. 用户头像
    理由
    举报 取消

    实际上这个问题有已经写好的现成的函数,封装在了CRAN – Package infotheo的mutinformation函数里面了,直接调用就行了。

    library('infotheo')
    x=c(0,1,1,1)
    y=c(1,1,1,1)
    mutualinformation=mutinformation(x,y)
    #x向量与y向量的互信息量mutualinformation=0
    
  2. cool-program
    理由
    举报 取消

    @桃花鱼 ,您好,您说的应该是联合互信息 I(x1, x2; Y) = H(x1 | Y) + H(x2 | Y) – H(x1, x2 | Y),如果嫌条件熵计算麻烦,就再转换成联合熵

  3. 桃花鱼
    理由
    举报 取消

    你好,我想请问如果是两个因素对于一个因素的互信息,如何计算呢?比如x、y分别是两个向量,z是一个等长的向量。如何计算xy的组合和z的互信息呢?

我来回答

Captcha 点击图片更换验证码