[英]Finding Two-Tailed P Value from t-distribution and Degrees of Freedom in Python
[英]Entropy of t-distribution in scipy: How to input degrees of freedom to digamma and beta functions?
現在,如果將此公式應用於Student-t分布,您會注意到該公式已包含自由度參數 ( v ):
作為積分的結果,您將獲得 Betta 和 Digmma 的近似值。 如果你可以計算,老實說我不能,你會發現這些將v作為計算的結果作為輸入。 這不在他們的定義中。
v在 1(柯西分布)和無窮大(正態分布)之間變化。
為了簡化計算,我使用了以下代碼:
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)
您可以向它傳遞一個列表或類似的東西來計算多重分布的熵。
您還可以使用多元學生 t 分布的微分熵,其中,dim 是維度,dof 是自由度,cmtx 是協方差。
import numpy as np
import scipy.special as sc
def compute_true_entropy(dim=1, dof=3, std=False):
cmtx = np.identity(dim)
B0 = 0.5*np.log(np.linalg.det(cmtx))
B1 = sc.gamma((dim+dof)/2)/((sc.gamma(dof/2))*((np.pi*dof)**(dim/2)))
B2 = ((dof+dim)/2)*(sc.digamma((dof+dim)/2) - sc.digamma((dof)/2))
entropy = B0 - np.log(B1) + B2
return entropy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.