OLS·공변량·진단
이 토픽을 마치면
OLS 계수를 outcome과 covariate의 관계로 읽고, 적합 성공과 해석 가능성을 구분할 수 있습니다. 잔차·영향점·설계 단위 진단을 통해 모형이 질문의 가정을 얼마나 반영하는지 점검합니다.
모형보다 질문이 먼저다
OLS는 outcome의 조건부 평균을 설명하는 선형 관계를 표현하는 하나의 모델입니다. 계수는 다른 입력이 고정됐다는 조건 아래 입력과 outcome의 관계를 나타내지만, 관측자료에서 자동으로 인과 효과를 뜻하지 않습니다. 공변량을 넣었다는 이유만으로 교란과 설계 문제가 사라지지 않습니다.
데이터 계약과 식
outcome = beta_0 + beta_1 * exposure + beta_2 * covariate + error각 기호의 단위와 관측 단위를 정의합니다. error는 설명되지 않은 변동을 나타내며, 독립성·평균 구조·분산 구조 등의 가정과 연결됩니다.
Python 적합과 결과 객체
statsmodels의 OLS는 적합 결과 객체를 반환합니다. 계수, 표준오차, 구간, 잔차와 진단값을 따로 읽어야 하며 summary 표의 p-value 하나로 모델의 품질을 결정하지 않습니다.
import statsmodels.api as sm
X = sm.add_constant(data[["exposure", "covariate"]])model = sm.OLS(data["outcome"], X).fit()print(model.params)print(model.conf_int())실제 분석에서는 변수 자료형·결측·단위와 독립성을 먼저 확인합니다. 결과 object가 반환됐다는 것은 계산이 끝났다는 뜻이지 가정이 통과했다는 뜻이 아닙니다.
진단 읽기
잔차는 관측 outcome과 모델이 예측한 값의 차이입니다. 잔차의 패턴, 분산 변화, 영향점은 모델이 데이터 구조를 충분히 설명하지 못할 가능성을 보여줍니다. 영향점은 자동 제거 대상이 아니라, 입력·측정·설계와 결과 의존성을 다시 확인하는 신호입니다.
잔차 대 적합값 그림에서 곡선 패턴이 보이면 선형 평균 구조가 충분한지 점검합니다. 적합값이 커질수록 잔차 폭이 넓어지면 분산 구조를 다시 살펴봅니다. 특정 관측의 영향이 크다면 해당 행의 단위·입력 오류·실제 범위를 확인하고, 포함·제외에 따른 결과 변화를 기록할 수 있습니다.
진단 하나가 모든 가정을 판정하지 않습니다. 그래프, 수치 진단, 연구설계를 함께 보고, 문제가 발견됐을 때 변수를 기계적으로 삭제하거나 변환하지 않습니다.
연구 질문으로 돌아가 해석하기
OLS 계수는 모델과 설계가 허용하는 조건부 관계입니다. 관측자료에서 계수만으로 인과를 확정하지 않으며, 효과크기·구간·단위·외삽을 함께 보고합니다.
자주 생기는 실패
- 잔차 진단 없이 계수를 해석하지 않습니다.
- p-value를 인과의 증명으로 쓰지 않습니다.
- 영향점을 자동 삭제하지 않습니다.
- 공변량을 많이 넣으면 편향이 자동으로 사라진다고 쓰지 않습니다.
핵심 정리
- OLS는 조건부 평균 관계를 표현하는 모델입니다.
- 계수 해석에는 단위·설계·가정이 필요합니다.
- 적합 성공과 진단 통과는 다릅니다.
다음 토픽으로
다음 편에서는 이진 outcome과 log-odds를 logistic regression으로 연결합니다.
참고 자료
- statsmodels API: https://www.statsmodels.org/stable/api.html
- Regression diagnostics: https://www.statsmodels.org/stable/examples/notebooks/generated/regression_diagnostics.html
- ASA p-value statement: https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
본 편의 데이터와 설명은 BioStatPy가 독립적으로 작성했습니다.