Poisson·offset·negative binomial
이 토픽을 마치면
count, rate, exposure time을 구분하고 Poisson GLM에서 offset의 역할을 설명할 수 있습니다. overdispersion을 확인하지 않고 Poisson을 자동 선택하지 않으며, negative binomial 모델을 모형 가정의 대안으로 이해합니다.
횟수와 비율은 다르다
같은 기간을 관찰한 사건 횟수는 count로 표현할 수 있습니다. 관찰 시간이 서로 다르면 횟수만 비교하지 않고 rate를 생각해야 합니다. offset은 관찰 기회 또는 exposure의 차이를 모델의 선형 예측에 반영하는 방법입니다.
Poisson의 질문
Poisson 구조는 count와 평균 변동 관계에 관한 가정을 포함합니다. count가 정수이고 음수가 아니어도 Poisson 가정이 자동으로 맞는 것은 아닙니다. overdispersion, zero 구조, 군집·시간 의존성을 점검해야 합니다.
모델과 결과 객체
import numpy as npimport statsmodels.api as sm
X = sm.add_constant(data[["exposure_group"]])poisson = sm.GLM( data["count"], X, family=sm.families.Poisson(), offset=np.log(data["observation_time"]),).fit()print(poisson.params)observation_time은 양수이고 단위가 정의되어 있어야 하며, offset은 관찰 기회의 로그를 모형에 넣는 계약입니다. API가 실행됐다고 해서 rate 해석이 자동으로 올바른 것은 아닙니다.
overdispersion과 대안
관측 변동이 Poisson 가정이 허용하는 정도보다 클 수 있습니다. 이때 원인을 먼저 확인합니다. 반복·군집·누락된 공변량·생성 구조가 문제일 수 있으며, negative binomial이 모든 원인을 해결하는 만능 대안은 아닙니다. 모델을 바꿀 때 가정과 진단 결과를 함께 기록합니다.
연구 질문으로 돌아가 해석하기
count 모델의 계수는 link 척도에 있고, 지수화한 값은 rate ratio로 읽힐 수 있지만 단위와 offset 정의가 필요합니다. 특정 모델이 선택됐다는 사실을 생물학적 생성 기전의 확정으로 쓰지 않습니다.
자주 생기는 실패
- count를 rate와 같은 말로 쓰지 않습니다.
- observation time이 다른데 offset을 생략하지 않습니다.
- 정수 outcome이라는 이유만으로 Poisson을 자동 선택하지 않습니다.
- overdispersion을 확인하지 않고 표준오차를 해석하지 않습니다.
핵심 정리
- count와 rate는 관찰 기회의 차이를 포함해 구분합니다.
- offset은 exposure를 모델에 연결합니다.
- Poisson과 negative binomial은 서로 다른 가정을 가집니다.
다음 토픽으로
다음 편에서는 fixed effect와 random effect를 mixed model에서 구분합니다.
참고 자료
- statsmodels GLM: https://www.statsmodels.org/stable/glm.html
- statsmodels API: https://www.statsmodels.org/stable/api.html
- Bioconductor OSTA experimental design: https://bioconductor.org/books/release/OSTA/pages/bkg-exp-design.html
본 편의 count schema와 코드는 BioStatPy가 독립적으로 작성했습니다.