Beta分布的参数估计

Beta分布的参数估计

关于Beta分布,大致上可以视为是概率的分布,当不知道先验分布是什么时可以设为Beta分布。具体可以参见

最近在导师的课题中发现了使用Beta分布进行扰动的代码,补习了下Beta分布的知识。这里推导一下Beta分布的参数估计。

数学推导

Beta分布的期望是αα+β, 方差是αβ(α+β)2(α+β+1)。可以用样本的均值X和方差S2估计参数α,β

{X=αα+βS2=αβ(α+β)2(α+β+1)

整理下有:

{X(α+β)=α(1)S2X2(α+β+1)=βα(2)

(1)式代入(2)式有

S2X2(α2X+α)=β      (3)

(3)式代入(1)式有

X(α+S2X2(α2X+α))=α

化简得到

S2X2α=1S2XXα=X2S2(1S2XX)=X(XS21X2S2)=X(X(1X)S21)     (4)

将(4)式代入(3)式有

β=S2X2(X(X(1X)S21)2+X(X(1X)S21))=(1X)(X(1X)S21)

这样,我们就得到了α,β的估计。

代码实现

N = ((1 - M) * M) / var - 1
alpha = N * M
beta = N - alpha
# Anew = rg.beta(alpha, beta)
# Anew[np.tril_indices_from(Anew)] = Anew.T[np.tril_indices_from(Anew)]
noise = np.triu(rg.beta(alpha, beta) - M)

M 是一个概率矩阵,里面中的每一个值可以视为样本均值。所以M相当于上面推到中的X。var是设定好的一个值,作为方差,相当于S2。所以代码中的N即为α,β所共有的:

X(1X)S21

所以N * M 即为α。N(1-M) = N - α即为 β

欢迎「 Beta分布的参数估计 | Eggplant 」
召唤看板娘