import numpy as np
import scipy.special as sc
v = float(input('Degre of freedom '))
v1 = (1+v)/2
v2 = v/2
Entropy_of_Variable_X = v1*(sc.digamma(v1)-sc.digamma(v2))+np.log(np.sqrt(v)*sc.beta(v2,0.5))
print('Entropy of the variable X, of degree of freedom equal to : ', v, 'is ', Entropy_of_Variable_X)
根据其定义,Shanoon将熵定义为:
现在,如果您将此公式应用于Student-t分布,您将注意到此分布已包含自由度参数(v):
作为积分的结果,您将在近似情况下获得Betta和Digmma。如果你能进行计算,老实说,我不能,你会发现它们将v作为输入,只是作为计算的结果。这不在他们的定义中
v在1(柯西分布)和无穷大(正态分布)之间变化
为了简化计算,我使用了以下代码:
你可以给它一个列表或者类似的东西来计算多重分布的熵
也可以使用多元student t分布的微分熵,其中dim是维度,dof是自由度,cmtx是协方差
相关问题 更多 >
编程相关推荐