跳转至

3.6   独立性

咖啡店里有一个小抽奖:先抛硬币,再从袋子里抽一颗珠子。抽到红珠就送贴纸。

小率问:“如果硬币是正面,会不会影响抽到红珠的概率?”

均哥把桌上的道具分成两组:左边是一枚硬币配一个固定珠袋;右边是硬币正反面分别对应两个不同珠袋。

用硬币和珠袋理解独立性

这一节只用这个抽奖游戏讲独立性。核心问题很朴素:知道一件事发生以后,另一件事的概率有没有改变?


3.6.1   独立不是“没关系”,而是概率没变

事件 \(A\)\(B\) 独立(Independent),意思不是一句模糊的“它们好像没关系”,而是一个可以检查的条件:

\[ P(A\mid B)=P(A) \]

知道 \(B\) 发生以后,\(A\) 的概率没有改变。

在左边的游戏里:

  • \(A\):硬币正面。
  • \(B\):抽到红珠。

如果抛硬币不会改变袋子,袋子也不会改变硬币,那么知道硬币正面,并不会改变抽到红珠的概率。

假设固定珠袋里有 4 颗红珠、6 颗蓝珠:

\[ P(B)=\frac{4}{10}=0.4 \]

就算已经知道硬币是正面,袋子仍然是同一个袋子:

\[ P(B\mid A)=0.4 \]

所以在这个规则下,硬币结果和抽到红珠是独立的。

也就是说,独立性要看“知道一个以后,另一个的概率有没有变”。
对。不是凭感觉说独立,而是看条件概率是否保持原样。

3.6.2   独立也可以写成乘法

如果 \(A\)\(B\) 独立,那么:

\[ P(A\cap B)=P(A)P(B) \]

比如硬币正面的概率是 0.5,抽到红珠的概率是 0.4,而且两件事独立,则:

\[ P(A\cap B)=0.5\times0.4=0.2 \]

这句话的直觉是:先发生 A 的机会是 0.5;在 A 已经发生后,B 的机会仍然是 0.4,所以一路相乘。

什么时候可以直接相乘

只有确认独立时,才可以把 \(P(A\cap B)\) 直接写成 \(P(A)P(B)\)。如果规则让前一步影响后一步,就要改用条件概率。


3.6.3   规则一改,独立性就可能消失

右边的游戏里,规则变了:

  • 硬币正面:从红珠很多的袋子里抽。
  • 硬币反面:从蓝珠很多的袋子里抽。

假设:

硬币结果 使用的袋子 红珠比例
正面 红珠多的袋子 0.8
反面 蓝珠多的袋子 0.2

这时,知道硬币正面,就会提高抽到红珠的概率;知道硬币反面,就会降低抽到红珠的概率。于是硬币结果和红珠事件不独立。

原来独立性不是看两个动作像不像有关,而是看规则有没有把它们连起来。
没错。规则让袋子随硬币变化,条件概率就变了。

如果硬币公平,那么总体抽到红珠的概率是:

\[ P(B)=0.5\times0.8+0.5\times0.2=0.5 \]

但:

\[ P(B\mid A)=0.8 \]

因为 \(0.8\ne0.5\),所以不独立。


3.6.4   互斥和独立不要混成一件事

图 3.6.1 独立、互斥和相关的区别

在珠袋游戏里,“抽到红珠”和“抽到蓝珠”是互斥的:一次只抽一颗珠子,不可能同时既红又蓝。

但互斥通常不是独立。为什么?

设:

  • \(R\):抽到红珠。
  • \(L\):抽到蓝珠。

如果已经知道抽到蓝珠,那么抽到红珠的概率立刻变成 0:

\[ P(R\mid L)=0 \]

这显然改变了 \(P(R)\)。所以只要两个互斥事件本来都有可能发生,它们就不是独立的。

关系 关键问题 在抽奖故事里的理解
独立 知道一个,另一个概率变不变 硬币不改变袋子时,硬币和红珠独立
不独立 知道一个,另一个概率会改变 硬币决定袋子时,硬币和红珠不独立
互斥 两个事件能不能同时发生 一次抽珠不可能同时红又蓝

需要注意

互斥通常不是独立。若 \(A\)\(B\) 互斥,且它们本来都有可能发生,那么一旦知道 \(B\) 发生,\(A\) 的概率就变成 0,显然改变了。


3.6.5   用 Python 检查独立性

# 固定珠袋:硬币不改变袋子
p_head = 0.5
p_red = 0.4
p_red_given_head = 0.4

print("固定珠袋:")
print(f"P(红珠) = {p_red:.1f}")
print(f"P(红珠 | 正面) = {p_red_given_head:.1f}")
print(f"是否独立:{p_red_given_head == p_red}")

# 硬币决定袋子:硬币会改变抽到红珠的概率
p_red_given_head = 0.8
p_red_given_tail = 0.2
p_red_total = p_head * p_red_given_head + (1 - p_head) * p_red_given_tail

print("\n硬币决定袋子:")
print(f"P(红珠) = {p_red_total:.1f}")
print(f"P(红珠 | 正面) = {p_red_given_head:.1f}")
print(f"是否独立:{p_red_given_head == p_red_total}")

这段代码只检查一件事:条件概率有没有改变。只要 \(P(红珠\mid 正面)\)\(P(红珠)\) 不一样,就不能说独立。

小率的笔记本

  • 独立的核心是 \(P(A\mid B)=P(A)\)
  • 等价写法是 \(P(A\cap B)=P(A)P(B)\)
  • 独立性不是凭直觉判断,要看条件概率是否改变。
  • 互斥是不能同时发生;独立是知道一个不改变另一个概率。
  • 互斥事件只要本来都有可能发生,通常就不是独立事件。