1847 - Semmelweis 洗手(產褥熱之謎的統計偵破)#
案件摘要#
1847 年,維也納總醫院的匈牙利醫師 Ignaz Semmelweis 發現一個可怕的數字對比: 醫生接生的產房產褥熱死亡率 18%,助產士接生的產房只有 3%—— 差了 6 倍!他推理出兇手:醫生解剖屍體後不洗手,把「屍體粒子」帶進產房。 他下令所有人接生前用氯水洗手——死亡率暴跌到 1%。 一個統計對比 + 一條命令,救活了千百萬產婦。
前因 -- 為什麼會有這個案子#
- 產褥熱的恐怖:18–19 世紀的產院,產褥熱(產後敗血症)死亡率常達 10–30%—— 「進產院生產 = 賭命」,產婦寧願在路上生。醫院是兇手,這是當年最諷刺的事實。
- 兩個產房的對比:維也納總醫院第一產房(醫生+醫學生接生)死亡率 18%, 第二產房(助產士接生)3%——同一家醫院、同一批病人,只有接生者不同。 這是天然的對照實驗——Semmelweis 的偵探直覺:抓住這個對比不放。
- 關鍵線索:Kolletschka 之死:1847 年,他的同事 Kolletschka 被醫學生的解剖刀 劃傷而死,死狀與產褥熱一模一樣——Semmelweis 電光石火: 屍體的「粒子」經由醫生的手進入產婦的傷口!
- 氯水洗手令(1847 年 5 月):所有人接生前用氯化石灰水洗手—— 死亡率從 18% 跌到 1–2%,與助產士產房持平。
線索與推理 -- 數學式、程式、理論#
核心推理:對照組的邏輯(現代流行病學的先驅)#
Semmelweis 的推理只有兩步: 1. 對比:兩個產房的唯一差異是「接觸過屍體與否」→ 差異的原因在差異之中 2. 干預:移除差異(氯水洗手)→ 死亡率趨同 → 因果確認
\[ \text{死亡率差異} = f(\text{接觸屍體}) \xrightarrow{\text{洗手干預}} \text{差異消失} \Longrightarrow \text{因果成立}. \]
這是干預實驗 (intervention) 的偵破——比 Bradford Hill 的因果準則(1965) 早了 118 年,是現代流行病學與對照試驗(RCT)的方法論先驅。
Semmelweis 的數據(1840–1848)#
| 年份 | 第一產房(醫生) | 第二產房(助產士) |
|---|---|---|
| 1846 | 11.4% | 2.7% |
| 1847/4(洗手前) | 18.3% | 3.2% |
| 1847/6(洗手後) | 1.2% | 2.7% |
| 1848(洗手令全年) | 1.3% | 1.3% |
1848 年兩個產房首次持平——因果鏈閉合。
Python:Semmelweis 數據的統計偵查#
import numpy as np
from math import comb
def two_proportion_test(p1, n1, p2, n2):
# 兩比例的 z 檢定(現代版重演)
p_pool = (p1*n1 + p2*n2) / (n1 + n2)
se = np.sqrt(p_pool*(1-p_pool)*(1/n1 + 1/n2))
z = (p1 - p2) / se
return z
# 1846 年數據:第一產房 vs 第二產房
births1, deaths1 = 4010, int(4010*0.114)
births2, deaths2 = 3754, int(3754*0.027)
z = two_proportion_test(deaths1/births1, births1, deaths2/births2, births2)
print(f"1846 年兩產房死亡率對比:11.4% vs 2.7%")
print(f"z 統計量 = {z:.1f}(>3 即極顯著——差異絕非偶然)")
print(f"\n洗手干預後:18.3% → 1.2%,相對風險下降 {1-0.012/0.183:.0%}")
1846 年兩產房死亡率對比:11.4% vs 2.7%
z 統計量 = 14.8(>3 即極顯著——差異絕非偶然)
洗手干預後:18.3% → 1.2%,相對風險下降 93%
結案 -- 後果與影響#
- 感染控制的誕生:洗手 = 第一個有效的感染控制措施—— 今天的「手部衛生五時刻」(WHO, 2009) 直接源自 Semmelweis。 COVID 期間的洗手宣導,175 年前就在維也納上演。
- 被拒絕的偵探:Semmelweis 的理論被當時主流(屍體粒子不符合「瘴氣論」)拒絕, 他被維也納醫院解僱、精神失常,1865 年死於精神病院(死因疑似敗血症——命運的殘酷反諷)。 他的翻案要到 Pasteur 的細菌理論(1864)與 Lister 的消毒術(1865)——死後 3 年。
- 細菌理論的鋪路:Semmelweis 的「屍體粒子」是錯誤名稱的正確概念—— 粒子就是細菌。Pasteur(
1864-Pasteur天鵝頸實驗.md)與 Koch(1882-Koch結核桿菌.md) 給了它正確的名字。 - 對照試驗的先驅:兩產房的天然對照 = 現代 RCT 的方法論源頭—— 「差異的原因在差異之中」成為流行病學的第一原則(Snow 的迴響,見
1858-Snow霍亂地圖.md)。
關鍵人物與文獻#
- Ignaz Semmelweis:《Die Ätiologie, der Begriff und die Prophylaxis des Kindbettfiebers》(1861)。
- Kolletschka:被解剖刀劃傷致死的同事(關鍵線索的提供者)。
- 相關案件:
1864-Pasteur天鵝頸實驗.md、1858-Snow霍亂地圖.md、1882-Koch結核桿菌.md。