Beta分布的参数估计
Beta分布的参数估计
关于Beta分布,大致上可以视为是概率的分布,当不知道先验分布是什么时可以设为Beta分布。具体可以参见
最近在导师的课题中发现了使用Beta分布进行扰动的代码,补习了下Beta分布的知识。这里推导一下Beta分布的参数估计。
数学推导
Beta分布的期望是\(\frac{\alpha}{\alpha+\beta}\), 方差是\(\frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}\)。可以用样本的均值\(\overline{X}\)和方差\(S^2\)估计参数\(\alpha, \beta\)
\[\begin{aligned}\left\{\begin{matrix} \overline{X}=&\frac{\alpha}{\alpha+\beta}\\ S^2=&\frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)} \end{matrix}\right.\end{aligned}\]整理下有:
\[\begin{aligned}\left\{\begin{matrix} \overline{X}(\alpha+\beta)=&\alpha&(1)\\ \frac{S^2}{\overline{X}^2}(\alpha+\beta+1)=&\frac{\beta}{\alpha}&(2) \end{matrix}\right.\end{aligned}\](1)式代入(2)式有
\[\frac{S^2}{\overline{X}^2}(\frac{\alpha^2}{\overline{X}}+\alpha)=\beta\ \ \ \ \ \ (3)\](3)式代入(1)式有
\[\overline{X}(\alpha + \frac{S^2}{\overline{X}^2}(\frac{\alpha^2}{\overline{X}}+\alpha))=\alpha\]化简得到
\[\begin{aligned}\frac{S^2}{\overline{X}^2}\alpha&=1-\frac{S^2}{\overline{X}}-\overline{X}\\\alpha&=\frac{\overline{X}^2}{S^2}(1-\frac{S^2}{\overline{X}}-\overline{X})\\&=\overline{X}(\frac{\overline{X}}{S^2}-1-\frac{\overline{X}^2}{S^2}) \\&=\overline{X}(\frac{\overline{X}(1-\overline{X})}{S^2}-1)\ \ \ \ \ (4)\end{aligned}\]将(4)式代入(3)式有
\[\begin{aligned}\beta&=\frac{S^2}{\overline{X}^2}(\overline{X}(\frac{\overline{X}(1-\overline{X})}{S^2}-1)^2+\overline{X}(\frac{\overline{X}(1-\overline{X})}{S^2}-1))\\&=(1-\overline{X})(\frac{\overline{X}(1-\overline{X})}{S^2}-1)\end{aligned}\]这样,我们就得到了\(\alpha, \beta\)的估计。
代码实现
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相当于上面推到中的\(\overline{X}\)。var是设定好的一个值,作为方差,相当于\(S^2\)。所以代码中的N即为\(\alpha, \beta\)所共有的:
\[\frac{\overline{X}(1-\overline{X})}{S^2}-1\]所以N * M 即为\(\alpha\)。N(1-M) = N - \(\alpha\)即为 \(\beta\)。