4.4. 几何分布与负二项分布#
- 几何分布
假定伯努利试验中成功(事件 \(A\) )概率为 \(p\) 。记 \(X\) 为伯努利试验首次成功的次数,其分布列为:
\[
P(X=k) = (1-p)^{(k-1)}p, k=1,2,\cdots.
\]
称这个分布为几何分布。记 \(X\sim Ge(p)\) 。
Theorem 4.2
设 \(X \sim Ge(p)\) ,则对任意正整数 \(m\) 和 \(n\) ,有:
\[
P(X>m+n|X>m)=P(X>n)
\]
Proof
因为 \(X\) 的概率分布列为:
\[
P(X= k) = (1-p)^{k-1} p , k=1,2,\cdots,
\]
所以,
\[
P(X>n)=\sum_{k=n+1}^{+\infty } (1-p)^{k-1} p=p\cdot \frac{(1-p)^{n} }{p} =(1-p)^{n}
\]
因此,对于任意正整数 \(m\) 和 \(n\) ,条件概率为:
\[
P(X>m+n|X>m)=\frac{P(X>m+n,X>m)}{P(X>m)} =\frac{P(X>m+n)}{P(X>m)}=\frac{(1-p)^{m+n} }{(1-p)^{m} }=(1-p)^{n}
\]
Remark 4.5
在本证明中,我们使用到等比数列的求和公式。对于一个等比数列 \(\{a_n\}\) ,首项为 \(a_1\) ,公比为 \(q\) 。
前 \(n\) 项和 \(S_n = \sum_{i=1}^n a_i = \frac{a_1 ( 1- q^n)}{(1-q)}\) ;
无穷项求和 \(S_\infty = \sum_{i=1}^\infty a_i\) 有两种需要讨论的情况。
若 \(|q|<1\) ,则:
\[ S_\infty = \lim_{n\rightarrow \infty} S_n = \frac{a_1}{1-q}; \]若 \(|q| \geq 1\) ,则 \(S_\infty\) 是发散的;
- 负二项分布
假定伯努利试验中成功(事件 \(A\) )概率为 \(p\) 。记 \(X\) 为伯努利试验第 \(r\) 次成功的次数,其分布列为:
\[
P(X=k) = C_{k-1}^{r-1} (1-p)^{(k-r)}p^{r}, k=r,r+1,r+2,\cdots.
\]
称这个分布为负二项分布。记 \(X\sim Nb(r,p)\) 。
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import comb
def prompt_int(message: str, *, min_value: int = None, max_value: int = None) -> int:
while True:
try:
value = int(input(message))
except ValueError:
print("请输入有效的整数。")
continue
if min_value is not None and value < min_value:
print(f"数值必须 >= {min_value}。")
continue
if max_value is not None and value > max_value:
print(f"数值必须 <= {max_value}。")
continue
return value
def prompt_probability(message: str) -> float:
while True:
try:
value = float(input(message))
except ValueError:
print("请输入有效的小数。")
continue
if not (0 < value < 1):
print("概率需要在 0 和 1 之间(不含端点)。")
continue
return value
def read_parameters():
print("Negative Binomial Distribution Visualizer")
r = prompt_int("请输入目标成功次数 r(>=1,例如 3): ", min_value=1)
p = prompt_probability("请输入每次成功概率 p(0-1 之间,例如 0.5): ")
return r, p
def plot_negative_binomial(r: int, p: float) -> None:
mean = r / p
std = np.sqrt(r * (1 - p)) / p
n_max = max(r + 10, int(np.ceil(mean + 4 * std)))
n_values = np.arange(r, n_max + 1)
probabilities = comb(n_values - 1, r - 1) * (p ** r) * ((1 - p) ** (n_values - r))
plt.figure(figsize=(10, 6))
plt.bar(n_values, probabilities, color="skyblue")
plt.xlabel("Number of trials n")
plt.ylabel("Probability P(X = n)")
plt.title(f"Negative Binomial Distribution: r={r}, p={p}")
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
def main():
r, p = read_parameters()
plot_negative_binomial(r, p)
if __name__ == "__main__":
main()
Remark 4.6
负二项分布与几何分布之间的关系是很紧密的。
几何分布是负二项分布的一种特例,即 \(r=1\) ;
负二项分布的随机变量可以分解为 \(r\) 个独立同分布的几何分布随机变量之和,即如果 \(X \sim Nb(r,p)\) ,
\[
X_i \overset{\text{i.i.d}}{\sim} Ge(p) ,
\]
那么, \(X = \sum_{i=1}^r X_i\) 。