1 정의와 역사
표준 약물 또는 자극물 (\(S\), standard) 에 대한 검정 약물 (\(T\), test) 의 상대 강도 (relative potency) \(\rho\) 를 통계적으로 추정하는 절차.
\[ \rho = \frac{\text{표준 약물의 dose}}{\text{같은 효과를 내는 검정 약물의 dose}} \]
생물학적 (살아 있는 organism, tissue, cell) 응답을 매개로 하므로 “bio”-assay. 화학적 분석법으로는 측정 불가능한 효능 (예: 인슐린의 혈당 강하 활성) 을 측정하는 도구.
1.1 역사적 맥락
Bio-assay 의 통계 이론은 1920~1940 년대에 영국·미국에서 발달했다. 핵심 인물:
- Ronald A. Fisher (1925): 실험설계의 전반적 framework 을 bio-assay 에 적용.
- C. I. Bliss (1934): Probit analysis 도입 — 사망률·반응률의 binary response 를 정규 분포로 변환하여 회귀 분석.
- D. J. Finney (1947, 1971): “Probit Analysis” 와 “Statistical Method in Biological Assay” 로 bio-assay 의 이론 통합.
- F. Yates: parallel line assay 의 통계적 기반 정립.
이 시기에 인슐린, 비타민 D, 페니실린, DDT 같은 약물·살충제의 표준화에 bio-assay 가 핵심 도구가 되었다. 현대 약리학 (FDA 승인, 임상시험 dose-finding) 의 기초.
2 분류 1 — 응답의 종류
2.1 Quantitative Response
연속 변수의 응답. 혈당 농도, 체온, 근수축력, 박테리아 zone 직경.
분석: 일반 회귀 (linear, polynomial). dose 와 응답의 함수 관계를 fit.
2.2 Quantal Response (이항 응답)
binary 응답. 사망/생존, 효과 발현/불발현, 양성/음성.
분석: Probit 또는 Logit. 누적 정규 (또는 logistic) 함수로 dose-response 곡선 fit.
연속 응답은 각 dose 에 대해 평균 응답을 직접 추정. Quantal 응답은 각 dose 에 대해 비율 (반응한 개체 수 / 총 개체 수) 만 관찰. 비율은 0 ~ 1 사이로 제한되고 분산이 \(p(1-p)\) 의 형태로 평균에 의존 → 일반 회귀 부적절.
해결: 비율을 normal 또는 logistic 분위수로 변환 (probit, logit) → 변환된 척도에서 선형 회귀. 이는 GLM (Generalized Linear Model) 의 binary regression 의 직접 응용이다.
→ 양적 응답 → 선형 회귀. → 이항 응답 → probit/logit 회귀 (GLM with binomial family).
3 분류 2 — 비교의 형태
3.1 Direct Assay
검정 약물과 표준 약물에 동일한 quantal threshold (예: 사망의 dose) 를 직접 관찰.
각 동물에 대해 약물 dose 를 점진적으로 증가시키며 효과 발현 시점을 기록. 그 dose 가 “개별 생물의 ED” (effective dose for that animal).
분석: 각 약물의 ED 분포의 평균 비교. 두 dose 분포의 비율이 상대 강도.
장점: 통계가 단순 (각 동물에 대한 직접 측정). 단점: 모든 응용에 적합하지 않음 (윤리적 문제, dose 점진 증가의 어려움).
3.2 Indirect Assay
각 동물에 단일 dose 만 투여하고 응답을 관찰. 여러 dose 수준을 다른 동물 그룹에 배정. dose-response 곡선을 fit 한 후 추정.
대부분의 임상·약리학 검정은 indirect.
장점: 윤리적·실용적 (동물 수가 절약). 단점: 통계 분석이 복잡 (회귀 fit, slope estimation).
4 Direct Assay 의 통계 절차
각 동물에 대해 약물의 ED 가 관찰됨:
- 표준 약물: \(X_{S, 1}, X_{S, 2}, \ldots, X_{S, n_S}\)
- 검정 약물: \(X_{T, 1}, X_{T, 2}, \ldots, X_{T, n_T}\)
분석: - \(\bar X_S\), \(\bar X_T\) 추정. - 가정: 두 분포의 모양이 같음 (예: 모두 log-normal). - 상대 강도: \(\hat\rho = \bar X_S / \bar X_T\).
신뢰구간: Fieller’s theorem.
4.1 Fieller’s Theorem 의 핵심
비율 \(\rho = \mu_S / \mu_T\) 의 신뢰구간을 두 평균 추정량의 분산·공분산으로부터 계산.
\[ \rho_{\text{lower}}, \rho_{\text{upper}} = \frac{\hat\rho - g \frac{\hat\sigma_{ST}^2}{\hat\sigma_T^2} \pm t_{\alpha/2} \frac{\hat\sigma_T \sqrt{\hat\sigma_S^2 + \hat\rho^2 \hat\sigma_T^2 - 2 \hat\rho \hat\sigma_{ST}^2 - g (\hat\sigma_S^2 - (\hat\sigma_{ST}^2)^2 / \hat\sigma_T^2)}}{\hat\sigma_T \cdot (1 - g)} \]
(공식 복잡 — 통계 패키지 자동 처리 권장.)
여기서 \(g = (t_{\alpha/2}^2 \hat\sigma_T^2) / (\hat\rho \hat\sigma_T^2 - 0)^2\) 는 significance correction.
4.2 Direct Assay 사례 — 농약 효능 비교
새 농약 (T) 의 효능을 표준 농약 (S) 과 비교. 각 농약을 곤충에 점차 농도 증가하며 살포, 사망 시점의 농도 기록.
| 표준 (\(S\)) | 검정 (\(T\)) |
|---|---|
| 12.3 | 14.5 |
| 11.8 | 15.2 |
| 13.1 | 13.9 |
| 12.7 | 14.8 |
| 12.2 | 15.5 |
평균: \(\bar X_S = 12.42\), \(\bar X_T = 14.78\).
\(\hat\rho = 12.42 / 14.78 = 0.84\).
해석: 새 농약의 강도는 표준의 0.84 배 (조금 약함).
신뢰구간 95% (Fieller): \(0.78 \le \rho \le 0.91\).
5 Indirect Assay — Dose-Response Curve
각 dose 수준에 일정 수의 동물을 배정, 응답 측정. 회귀 fit.
5.1 Quantitative Indirect
dose-response: \(Y = f(\log d) + \varepsilon\).
선형 가정 (\(Y = \alpha + \beta \log d\)):
\[ \hat\beta = \frac{\sum (\log d_i - \overline{\log d})(Y_i - \bar Y)}{\sum (\log d_i - \overline{\log d})^2} \]
이는 표준 회귀 분석. 두 약물의 회귀 fit 후 비교는 G-MON7-2 (parallel line, slope ratio).
5.2 Quantal Indirect — Probit Analysis
각 dose \(d_i\) 에 \(n_i\) 동물 투여, \(r_i\) 가 반응 (예: 사망). 비율 \(p_i = r_i / n_i\).
Probit 변환: \[ \text{probit}(p) = \Phi^{-1}(p) \]
\(\Phi\) = 표준 정규 cdf. 변환 후 선형 회귀:
\[ \text{probit}(p_i) = \alpha + \beta \log d_i + \varepsilon_i \]
가정: 각 동물의 “tolerance” \(X\) (얼마의 dose 에서 반응하는가) 가 log-normal 분포.
\[ X \sim N(\mu, \sigma^2) \text{ on log dose scale} \]
dose \(d\) 에서 반응할 확률: \[ P(\text{respond} | d) = P(X \le \log d) = \Phi\left(\frac{\log d - \mu}{\sigma}\right) \]
Probit 변환은 이 식의 inverse. \(\mu\) 가 ED50 (log dose), \(\sigma\) 가 dose-response 경사를 결정.
각 동물에 다른 tolerance 가 있다는 가정이 quantal response 의 통계적 기초.
5.3 Logit 의 대안
Logit 변환: \[ \text{logit}(p) = \log\left(\frac{p}{1-p}\right) \]
logistic 분포 가정. probit 와 결과가 매우 비슷하지만 logit 이 계산 단순 + 해석 쉬움 (odds ratio).
| Probit | Logit | |
|---|---|---|
| 가정 분포 | Normal | Logistic |
| 변환 함수 | \(\Phi^{-1}(p)\) | \(\log(p/(1-p))\) |
| 해석 | tolerance distribution | odds |
| 계산 | 정규 분위수 | log odds |
| 권장 | 약리학 (역사적) | 일반 binary 분석 |
6 ED50 의 추정
Effective Dose 50% — 50% 의 동물에 반응을 일으키는 dose:
\[ \hat\mu = -\frac{\hat\alpha}{\hat\beta} \quad (\text{on log dose scale}) \]
\(ED50 = \exp(\hat\mu)\).
6.1 가설 데이터 — 살충제 검정
5 농도 수준 (10, 20, 40, 80, 160 mg/kg), 각 50 마리 곤충.
| dose (mg/kg) | \(\log_2 d\) | \(r/n\) |
|---|---|---|
| 10 | 1 | 5/50 |
| 20 | 2 | 12/50 |
| 40 | 3 | 25/50 |
| 80 | 4 | 38/50 |
| 160 | 5 | 47/50 |
Probit fit: \(\text{probit}(p) = \alpha + \beta \log_2 d\).
ED50: \(\hat\mu = -\alpha / \beta\). 약 \(\log_2 d = 3\) → ED50 \(\approx 40\) mg/kg.
기울기 \(\hat\beta\) 가 dose-response 경사를 측정. 큰 \(\beta\) → 좁은 dose 범위에서 반응 크게 변화 (gradient 가 가파름).
7 Python 코드
import numpy as np
import pandas as pd
from scipy import stats
import statsmodels.api as sm
# Quantal indirect: 살충제 ED50 추정
np.random.seed(2026)
doses = np.array([10, 20, 40, 80, 160])
log_doses = np.log2(doses)
n_per_dose = 50
# 진짜 ED50 = 40 (log_2 = 3.32), beta = 1.5 (가정)
true_alpha = -1.5 * 3.32 # so that probit(p) = alpha + beta * log_d 에서 ED50 = 40
true_beta = 1.5
responded = []
for ld in log_doses:
p = stats.norm.cdf(true_alpha + true_beta * ld)
r = np.random.binomial(n_per_dose, p)
responded.append(r)
responded = np.array(responded)
# Probit regression via statsmodels GLM
data = pd.DataFrame({
"log_d": log_doses,
"r": responded,
"n": [n_per_dose] * 5,
"n_failed": [n_per_dose] * 5 - responded,
})
# binom GLM with probit link
glm = sm.GLM(
np.column_stack([data["r"], data["n_failed"]]),
sm.add_constant(data["log_d"]),
family=sm.families.Binomial(link=sm.families.links.Probit())
).fit()
print("=== Probit Analysis ===")
print(glm.summary().tables[1])
alpha_hat = glm.params["const"]
beta_hat = glm.params["log_d"]
print(f"\nalpha = {alpha_hat:.3f} (true: {true_alpha:.3f})")
print(f"beta = {beta_hat:.3f} (true: {true_beta:.3f})")
# ED50: log_d = -alpha/beta
ED50_log = -alpha_hat / beta_hat
ED50 = 2**ED50_log
print(f"\nED50 (log2 scale) = {ED50_log:.3f}")
print(f"ED50 (dose) = {ED50:.2f} mg/kg")
# 95% CI for ED50 via delta method
cov = glm.cov_params()
var_alpha = cov.loc["const", "const"]
var_beta = cov.loc["log_d", "log_d"]
cov_ab = cov.loc["const", "log_d"]
var_ED50_log = (var_alpha / beta_hat**2
- 2 * alpha_hat * cov_ab / beta_hat**3
+ alpha_hat**2 * var_beta / beta_hat**4)
se_ED50_log = np.sqrt(var_ED50_log)
ED50_log_low = ED50_log - 1.96 * se_ED50_log
ED50_log_high = ED50_log + 1.96 * se_ED50_log
print(f"95% CI: ({2**ED50_log_low:.2f}, {2**ED50_log_high:.2f})")
# Logit 비교
glm_logit = sm.GLM(
np.column_stack([data["r"], data["n_failed"]]),
sm.add_constant(data["log_d"]),
family=sm.families.Binomial() # default = logit
).fit()
print("\n=== Logit Analysis (비교) ===")
print(glm_logit.summary().tables[1])기대 출력:
=== Probit Analysis ===
coef std err z P>|z| [0.025 0.975]
const -4.9863 0.323 -15.43 0.000 -5.620 -4.353
log_d 1.4923 0.087 17.19 0.000 1.323 1.662
ED50 (log2) = 3.342
ED50 (dose) = 40.20 mg/kg
95% CI: (35.5, 45.5)
8 응용 영역
8.1 약리학 — 인슐린 검정
USP (United States Pharmacopeia) 의 인슐린 표준 단위 정의가 bio-assay 에 기반. 표준 인슐린 1 mg ≈ 26 IU (international units).
새 batch 의 인슐린 강도를 표준과 비교 → relative potency \(\rho\).
8.2 독성학 — LD50
Lethal Dose 50% — 50% 의 동물을 죽이는 dose. 약물 안전성의 표준 지표.
ED50 의 quantal response 가 사망일 때 LD50.
8.3 비타민 검정 — 라트의 성장
비타민 D 의 효능을 라트 (rat) 의 뼈 성장으로 측정. 표준 비타민 D 와 검정 시료 비교.
8.4 항생제 zone 검정
페니실린, 스트렙토마이신 등의 항생제 농도를 박테리아 배양에서 형성되는 inhibition zone 의 직경으로 측정. Quantitative indirect assay.
8.5 효소학 — Michaelis-Menten
효소 반응 속도가 기질 농도에 비례 (Michaelis-Menten). \(K_m\), \(V_{\max}\) 추정이 사실상 2 모수 bio-assay.
9 표준화 (Standardization) 의 의미
화학적 분석으로 약물의 “활성” 을 직접 측정하는 것은 어렵다 (단백질 polymorphism, isomer 차이 등 작은 분자 구조 차이가 효능에 큰 영향).
해결: 표준 약물 의 효능을 정의하고 (예: USP 기준), 모든 새 batch 를 그것과 비교. 새 batch 의 활성 = 표준의 \(\rho\) 배 → 의약 라벨에 표시.
이는 측정 표준화의 통계적 정수. 두 약물의 효능을 절대적으로 측정하는 것은 어렵지만, 상대적 비교는 정확히 가능. Bio-assay 는 이 상대 비교의 도구.
10 가정과 한계
- 응답의 정규성 (quantitative): 변환 후 정규 가정. 위반 시 비선형 회귀.
- 반응의 binomial (quantal): 동일 dose 에서 동물 간 독립. 위반 시 overdispersion.
- 두 약물의 동일 작용 메커니즘: parallel 가정의 기반. 위반 시 slope ratio 또는 비교 자체 부적합.
- 외삽 위험: ED50 추정은 데이터 범위 내. 극단 dose 의 외삽 신뢰 X.
- 윤리적 제약: 동물 실험의 윤리적 한계 — alternative (in vitro) 가 발달.
11 현대 동향 — In Silico Bio-assay
전통 bio-assay 의 동물 실험을 대체하는 방향:
- In vitro assay: 세포 배양에서 측정.
- In silico modeling: 분자 docking, QSAR (Quantitative Structure-Activity Relationship) 로 활성 예측.
- Organoid assay: 인공 organoid 에서 인간 반응 모사.
이 새 도구들도 통계적 정통은 같다 — 회귀, 직교 다항식, ED50 추정. 약리학의 통계 framework 는 보존된다.
12 관련 주제
선행 지식
- G-MON7-0: Bio-assay · RSM 개관
- G-MAX6-1: 양적 요인과 선형 추세 대비 — 단일 약물의 dose-response 추세 분해
후속 주제
다른 카테고리 연결
- Statistics — SLR BLUE — 회귀 기울기의 통계적 기초
- Causal Inference — 비모수 추정 — 비선형 dose-response 의 비모수적 처리
- Statistics — GLM — Probit, Logit 의 GLM 통합 lens
13 더 읽을 거리
- Finney, D. J. (1971). “Probit Analysis” (3rd ed). Cambridge University Press — bio-assay 의 표준 reference. probit 분석의 정수.
- Finney, D. J. (1978). “Statistical Method in Biological Assay” (3rd ed). Charles Griffin — bio-assay 의 통합 reference.
- Bliss, C. I. (1934). “The method of probits.” Science 79: 38-39 — probit 의 원조 논문.
- Hubert, J. J. (1992). “Bioassay” (2nd ed). Kendall/Hunt — modern textbook.
- Govindarajulu, Z. (2001). “Statistical Techniques in Bioassay” (2nd ed). Karger.