R中的熵和互信息

时间:2016-10-02 20:59:29

标签: r entropy information-theory

我想在R中计算条件互信息,我使用了名为infotheo的包。

我用两种方法来计算I(X; Y1,Y2 | Z)。首先是使用以下代码,

echo str_replace(array('T', 'Z'), array(' ', ''), '2016-08-27T18:15:00Z');

而且我认为互信息可以分解为两个熵:I(X; Y1,Y2 | Z)= H(X | Z)-H(X | Z,Y1,Y2),我使用以下码,

condinformation(X$industry,cbind(X$ethnicity,X$education),S=X$gender, method="emp")
[1] -1.523344

我想知道为什么这两个给我不同的结果?

1 个答案:

答案 0 :(得分:2)

这两种方法是不同的估计量,因此给出不同的结果,就像以下两个估计随机变量a和b之和的方差给出不同的结果:

> a <- rnorm(100)
> b <- rnorm(100)
> var(a+b)-(var(a)+var(b))
[1] 0.5219229

不确定哪种估算器在您的情况下更好,但我猜第一个。您可以从模型中进行一些模拟以获得更好的想法。