R包“mpmi”计算两组连续变量之间的互信息

时间:2016-12-08 10:14:50

标签: r kernel-density information-theory

我尝试使用包mpmi来计算两组连续变量之间的互信息。我对GutHub上的源代码感到困惑:https://github.com/cran/mpmi/blob/master/src/cminjk.f95

ans = ans + log(s12(i) / (s1(i) * s2(i)))

end do

ans = ans / lv + log(dble(lv))

s12看起来像p(x,y),而s1,s2看起来像p(x),p(y)。 为什么不在p(x,y)之前乘以log(s12(i) / (s1(i) * s2(i))),因为计算MI的公式为p(x,y)*log(p(x,y)/(p(x)p(y)))

为什么在完成求和后有ans = ans / lv + log(dble(lv))

2 个答案:

答案 0 :(得分:0)

参见参考文献"快速计算基因的成对互信息 监管网络重建"

答案 1 :(得分:0)

关注此参考文献:"快速计算基因调控网络重建的成对互信息"

此策略假设两个随机变量中的每一个都遵循正态分布。除非您确定知道两个变量都遵循正态分布,否则我建议使用不带任何分布假设的包。我推荐R包" minerva"。只需要指定MIC(X,Y)$ MIC。