안녕하세요! 이번 글은 오즈비(Odds Ratio)와 관련된 내용을 다루어 보려고 합니다.
데이터 분석, 특히 로지스틱 회귀 분석(Logistic Regression)을 진행할 때 흔히 등장하는 개념인 오즈비는 사건의 발생 확률을 설명할 때 유용하게 사용된다.
지금부터 오즈비와 로지스틱 회귀 분석의 기본 개념부터 계산 방법, 그리고 일반화 선형 모델(GLM)까지 다뤄보겠다.
1. 로짓(Logit) 함수와 로지스틱 회귀 분석
로짓 함수는 특정 사건이 발생할 확률을 모델링할 때 사용된다. 이는 단순히 0 또는 1의 값을 예측하는 것이 아니라, 해당 사건에 속할 확률을 결정한다.
로지스틱 회귀 분석은 주로 이진 변수(0 또는 1)를 종속 변수로 사용하며, 종속 변수와 독립 변수 간의 관계를 모델링할 때 많이 사용된다.
로지스틱 회귀 분석 코드 예시
from statsmodels.formula.api import logit
# 로지스틱 회귀 모델 생성 및 학습
model = logit("Survived ~ C(Gender) + SibSp + Parch + Fare", data=df).fit()
# 모델 요약 및 오즈비 계산
print(model.summary())
- 오즈비 계산 방법: 오즈비는 독립 변수의 계수에 자연상수 e를 제곱하여 계산한다. 이때 np.exp() 함수를 사용해 손쉽게 계산할 수 있다.
2. 오즈(Odds)와 오즈비(Odds Ratio)
오즈(Odds)
오즈는 어떤 사건이 발생할 확률과 발생하지 않을 확률 간의 비율을 의미한다. 예를 들어, 어떤 사건이 발생할 확률이 20%라면, 발생하지 않을 확률은 80%가 된다. 이 경우, 오즈는 0.2/0.8 = 0.25가 된다. 이는 4배 차이라는 의미이다.
오즈비(Odds Ratio)
오즈비는 로지스틱 회귀 분석에서 독립 변수의 계수를 통해 산출하는 값이다. 오즈비는 독립 변수가 한 단위 증가할 때, 종속 변수(0 또는 1)가 1이 될 확률이 얼마나 변하는지를 나타낸다.
- 오즈비 > 1: 독립 변수가 증가하면 종속 변수의 확률도 증가함.
- 오즈비 < 1: 독립 변수가 증가하면 종속 변수의 확률이 감소함.
예시
변수명 | 계수 (Coefficient) | 오즈비 (Odds Ratio) | 해석 |
SibSp | -0.3436 | 0.7 | 형제 자매, 배우자 수가 한 단위 증가할 때 생존의 오즈가 0.7배 감소 |
Fare | 0.5 | 1.65 | 요금이 한 단위 증가할 때 생존 확률이 1.65배 증가 |
위 예시에서 SibSp의 오즈비가 0.7로 나왔다면, 형제 자매 수가 한 단위 증가할 때마다 생존 오즈가 0.7배로 감소하는 것으로 해석할 수 있다. 이때, 자연상수 e의 -0.3436 제곱으로 오즈비를 구할 수 있다.
오즈비 계산 코드
import numpy as np
# 오즈비 계산
odds_ratio = np.exp(-0.3436)
print(f"Odz비: {odds_ratio}")
3. GLM(Generalized Linear Model) 일반화 선형 모델
일반화 선형 모델(GLM)은 선형 회귀 모델을 확장한 모델로, 종속 변수가 정규분포 외에 다른 분포를 따를 때도 적용할 수 있다. 예를 들어, 이항 분포나 포아송 분포 등이 있다. 특히 로지스틱 회귀 분석은 이항 분포를 따르는 종속 변수에 대해 사용되는 GLM이다.
GLM 예시 코드
from statsmodels.formula.api import glm
import statsmodels.api as sm
# glm 모델 적합
formula = "종속변수 ~ 독립변수"
model = glm(formula, data=df, family=sm.families.Binomial()).fit()
# 모델 요약
print(model.summary())
4. 오류율 계산
로지스틱 회귀 모델의 성능을 평가할 때는 오류율을 계산하기도 한다.
- 오류율: 전체 샘플 중 잘못 분류된 샘플의 비율을 의미하며, 다음과 같은 식으로 계산한다.
오류율이 작을수록 모델의 정확도가 높다는 의미가 된다.
5. 로지스틱 회귀 분석 과정 요약
아래 표는 로지스틱 회귀 분석을 진행하는 과정을 정리한 것이다. 각 단계에서 필요한 검정 방법과 설명을 함께 정리했다.
단계 | 설명 | 사용 함수 |
데이터 준비 | 독립 변수와 종속 변수를 정의 | - |
모델 학습 | 로지스틱 회귀 모델을 적합 | logit() |
오즈비 계산 | 독립 변수의 계수를 기반으로 오즈비 산출 | np.exp(계수) |
모델 평가 | 모델의 성능을 p-value, deviance 등으로 평가 | model.summary() |
오류율 계산 | 잘못 분류된 샘플의 비율을 계산 | 오류율=1−정확도 |
6. 정리 및 과정
오즈비 계산 및 로지스틱 회귀 분석 과정을 이해하기 쉽게 정리해보았다. 각 과정이 어떻게 연결되어 있는지 쉽게 파악할 수 있을 것이다.
- 데이터 준비: 데이터를 수집하고 독립 변수와 종속 변수를 정의한다.
- 모델 학습: 로지스틱 회귀 모델을 통해 독립 변수와 종속 변수 간의 관계를 학습시킨다.
- 오즈비 계산 및 모델 평가: 모델 학습 후 계수를 바탕으로 오즈비를 산출하고, 모델의 유의성을 확인한다.
- 오류율 계산: 모델의 정확도를 평가하고, 오류율을 계산한다.
혹시 이해가 어려우시다면, 이전 글을 먼저 참고해보시면 좋을 것 같습니다.
'IT & AI > AI 지식' 카테고리의 다른 글
이원 분산 분석(Two-way ANOVA) 분석 절차 (0) | 2024.12.09 |
---|---|
일원 분산 분석(One-way ANOVA)의 분석 절차 (0) | 2024.12.08 |
분산 분석(ANOVA): 일원 분산 분석, 이원 분산 분석 (0) | 2024.12.07 |
회귀 분석: 단순 선형 회귀 분석, 다중 선형 회귀 분석 (1) | 2024.12.06 |
범주형 데이터 분석: 카이제곱 검정 (Chi-Square Test) (0) | 2024.12.05 |