【发布时间】:2014-04-23 01:32:17
【问题描述】:
Tsallis entropy 用于离散变量定义为:
H[p,q] = 1/(q-1) * (1 - sum(p^q))
连续变量的 Tsallis 熵定义为:
H[p,q] = 1/(q-1) * (1 - int((p(x)^q dx)
其中p(x) 是数据的概率密度函数,int 是整数。
我正在尝试在 R 中实现 Tsallis 熵。
假设我有以下数据(由 beta 函数生成,但让我们考虑 分布未知)
set.seed(567)
mystring <- round(rbeta(500, 2,4), 2)
离散变量的 Tsallis 熵为:
freqs <- table(mystring) / 500
q = 3
H1 <- 1/(q-1) * (1 - sum(freqs^q))
[1] 0.4998426
我现在想计算连续变量的 Tsallis 熵:
PDF <- density(mystring)
library(sfsmisc)
xPDF <- PDF$x
yPDF <- PDF$y
H1 <- 1/(q-1) * (1 - integrate.xy(xPDF, yPDF^q))
[1] -0.6997353
正如我所料,这两个结果是不同的。但为何如此不同? 我的主要问题是:计算连续变量的 Tsallis 熵的代码是否正确?请记住,我假设分布是未知的。
【问题讨论】:
标签: r entropy information-theory