Files
2nd/10_Wiki/Topics/Other/Etiology-of-Disease.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

154 lines
5.9 KiB
Markdown

---
id: wiki-2026-0508-etiology-of-disease
title: Etiology of Disease
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Disease Causation, Pathogenesis, Causal Inference (Medicine)]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [medicine, epidemiology, causal-inference, pathology]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: r
framework: epidemiology
---
# Etiology of Disease
## 매 한 줄
> **"매 disease 의 cause = single agent 가 아닌 web of necessary + sufficient + component causes"**. 매 1840 Henle-Koch 의 single-pathogen postulate → 매 Rothman 1976 sufficient-component model → 매 2026 의 multi-omics + Mendelian randomization + DAG-based causal inference.
## 매 핵심
### 매 causation models
- **Henle-Koch postulates**: 매 isolation, transmission, re-isolation — 매 monocausal infectious era.
- **Bradford Hill criteria (1965)**: 9 viewpoints — strength, consistency, specificity, temporality, biological gradient, plausibility, coherence, experiment, analogy.
- **Rothman sufficient-component**: 매 disease = sum of "pies", each pie = sufficient cause = set of component causes. 매 same disease 의 multiple sufficient sets.
- **Counterfactual / DAG**: 매 Pearl 의 do-calculus, 매 confounder identification.
### 매 causal categories
- **Necessary**: 매 cause 없이 disease 없음 (예: HIV → AIDS).
- **Sufficient**: 매 cause 만 으로 disease (rare in practice).
- **Component**: 매 sufficient cause 의 part (예: 흡연 + asbestos + genetic).
- **Risk factor**: 매 association 만 — causality 의 unconfirmed.
### 매 응용
1. Smoking → lung cancer (Doll & Hill 1950).
2. H. pylori → peptic ulcer (Marshall 1984).
3. HPV → cervical cancer (zur Hausen 2008 Nobel).
4. APOE4 → Alzheimer (genetic risk, not deterministic).
## 💻 패턴
### Bradford Hill scoring
```python
from dataclasses import dataclass
@dataclass
class HillCriteria:
strength: float # RR or OR
consistency: int # # of confirming studies
temporality: bool # exposure precedes outcome
gradient: bool # dose-response
plausibility: bool # mechanism known
coherence: bool # fits prior knowledge
experiment: bool # RCT / natural experiment
specificity: bool
def hill_score(c: HillCriteria) -> int:
score = 0
score += 2 if c.strength >= 3 else 1 if c.strength >= 2 else 0
score += min(c.consistency // 3, 3)
score += [c.temporality, c.gradient, c.plausibility,
c.coherence, c.experiment, c.specificity].count(True)
return score # ≥7 = strong causal evidence
```
### Confounder adjustment via DAG (DoWhy)
```python
import dowhy
from dowhy import CausalModel
model = CausalModel(
data=df,
treatment="smoking",
outcome="lung_cancer",
common_causes=["age", "sex", "ses"],
instruments=["tobacco_tax"],
)
identified = model.identify_effect()
estimate = model.estimate_effect(identified, method_name="backdoor.linear_regression")
refute = model.refute_estimate(identified, estimate, method_name="placebo_treatment_refuter")
```
### Mendelian randomization
```python
# Instrumental variable: SNP → exposure → outcome
# (SNP independent of confounders)
import statsmodels.api as sm
# Wald ratio: beta_outcome / beta_exposure
def mendelian_ratio(snp_exposure_beta: float, snp_outcome_beta: float) -> float:
return snp_outcome_beta / snp_exposure_beta
```
### Population attributable fraction
```python
def paf(prevalence: float, relative_risk: float) -> float:
"""Fraction of disease attributable to exposure in population."""
return prevalence * (relative_risk - 1) / (1 + prevalence * (relative_risk - 1))
# Smoking prevalence 25%, RR for lung cancer 20:
print(paf(0.25, 20)) # ~0.83 → 83% of lung cancer attributable to smoking
```
### Sufficient-component pie visualization
```python
def sufficient_pies(disease: str) -> list[set[str]]:
"""Each pie = a set of component causes that together suffice."""
return [
{"smoking", "genetic_susceptibility"}, # pie 1
{"asbestos", "smoking"}, # pie 2
{"radon", "smoking", "vitamin_deficiency"}, # pie 3
]
```
## 매 결정 기준
| 상황 | Method |
|---|---|
| Single pathogen, acute | Koch postulates (modernized) |
| Chronic, multifactorial | Bradford Hill + Rothman |
| Observational with confounders | DAG + backdoor adjustment |
| Genetic causation suspected | Mendelian randomization |
| RCT impossible (ethics) | quasi-experiment + sensitivity analysis |
**기본값**: 매 Bradford Hill + DAG-based confounder adjustment + sensitivity analysis (E-value).
## 🔗 Graph
- 부모: [[Causal Inference]]
## 🤖 LLM 활용
**언제**: 매 literature synthesis 의 mechanism aggregation, 매 DAG 의 candidate confounder enumeration, 매 sufficient-component 의 component proposal.
**언제 X**: 매 final causation claim 의 LLM 의 의존 — 매 effect estimate 의 source data + statistical method 의 검증 필수.
## ❌ 안티패턴
- **Single-cause thinking**: 매 multifactorial disease 의 monocausal explanation — 매 H. pylori 발견 전 의 stress 의 ulcer 의 단일 cause 의 오해.
- **Correlation = causation**: 매 RR 만 으로 causal claim — 매 confounding, reverse causation, selection bias 의 무시.
- **Ignoring temporality**: 매 cross-sectional study 의 causal direction 의 결정 X.
- **Hill criteria 의 checklist 화**: 매 의 mechanical scoring — 매 viewpoints, not rules (Hill 의 의도).
## 🧪 검증 / 중복
- Verified (Rothman & Greenland "Modern Epidemiology" 4th ed, Hernán & Robins "Causal Inference: What If" 2024, Pearl "Causality" 2nd ed).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — Hill criteria, Rothman pies, DAG/MR patterns 추가 |