You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已知单值计数的二项分布样本中p的极大似然估计求解

二项分布参数p的极大似然估计(仅知单个取值计数的场景)

没问题,咱们来一步步拆解这个场景下的极大似然估计推导过程——当你没法拿到全部样本的具体取值,只知道M个独立样本里有m个恰好取到k值,而每个样本都服从参数为N(已知)、p(未知)的二项分布时,怎么求p的极大似然估计量。

步骤1:明确单个样本的概率

首先,对于服从Binomial(N, p)的随机变量X,它取到k值的概率是:

P(X=k) = \binom{N}{k} p^k (1-p)^{N-k}

这里\binom{N}{k}是组合数(从N个元素里选k个的组合数),咱们把这个概率简记为q(p),也就是q(p) = \binom{N}{k} p^k (1-p)^{N-k}。

步骤2:构造似然函数

现在我们有M个独立样本,其中恰好m个样本的取值是k,剩下的M-m个样本取值不是k。这个事件的似然函数(也就是给定p时,观测到这个结果的概率)是:

L(p) = \binom{M}{m} [q(p)]^m [1 - q(p)]^{M - m}

这里的\binom{M}{m}是从M个样本里选m个作为取值为k的样本的组合数,它是一个与p无关的常数,所以在求极大值的时候可以忽略,不影响最终的估计结果。

步骤3:取对数似然并求导

为了简化计算,我们对似然函数取自然对数(对数变换不会改变函数的极值点位置):

\ln L(p) = \ln\binom{M}{m} + m \ln q(p) + (M - m) \ln(1 - q(p))

接下来对p求导,并令导数等于0(极大似然估计的核心就是找到让似然函数最大的p值,此时导数为0):

先计算q(p)对p的导数:

\frac{d q(p)}{dp} = q(p) \left( \frac{k}{p} - \frac{N - k}{1 - p} \right)

把这个代入对数似然的导数,整理后可以得到关键方程:

\frac{m}{q(p)} = \frac{M - m}{1 - q(p)}

进一步化简后得到:

q(p) = \frac{m}{M}

步骤4:求解p的估计量

把q(p)的定义代回这个等式,就得到关于\hat{p}(p的极大似然估计量)的方程:

\binom{N}{k} \hat{p}^k (1-\hat{p})^{N-k} = \frac{m}{M}

遗憾的是,这个方程没有解析解(除非是一些极端情况,比如k=0或k=N),所以我们需要用数值方法来求解,比如常用的牛顿-拉夫逊法(Newton-Raphson Method):

  • 先给p一个初始猜测值(比如\hat{p}_0 = k/N,也就是二项分布的均值对应的p)
  • 然后迭代更新\hat{p}_{t+1} = \hat{p}_t - \frac{f(\hat{p}_t)}{f'(\hat{p}_t)},其中f(p) = \binom{N}{k} p^k (1-p)^{N-k} - m/M,f'(p)是f(p)的导数
  • 直到迭代结果收敛到足够精确的数值为止

举个实际例子

比如已知N=10,M=100个样本里有m=20个取到k=3,那么方程就是:

120 \hat{p}^3 (1-\hat{p})^7 = 0.2

通过数值迭代,我们可以求出\hat{p}的近似值(大概在0.3左右,你可以用Python的scipy.optimize.root函数来快速计算)。


内容的提问来源于stack exchange,提问作者Cindy Almighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:30:14