마케팅 담당자가 쿠폰 발송 여부와 구매 여부를 분석한 결과를 다음과 같이 보고받았다고 하자.
쿠폰을 받은 고객의 구매 오즈는 쿠폰을 받지 않은 고객보다 2배 높았다.
이 문장을 다음처럼 바꾸어 말해도 될까?
쿠폰을 받으면 구매확률이 2배가 된다.
그렇지 않다.
오즈비가 2라는 것은 확률이 아니라 오즈가 2배라는 의미다. 기준 구매확률이 10%라면 오즈비 2는 구매확률 약 18.2%에 해당한다. 기준 구매확률이 50%라면 약 66.7%가 된다.
같은 오즈비라도 원래 확률이 얼마인지에 따라 실제 확률의 변화는 달라진다.
로지스틱 회귀분석에서 가장 많이 보고되는 결과는 오즈비지만, 가장 자주 잘못 해석되는 결과도 오즈비다. 오즈와 확률을 혼동하거나, 조정 오즈비를 인과효과로 단정하거나, 오즈비 0.70을 확률이 30% 감소했다고 설명하는 오류가 흔하다.
로지스틱 회귀분석을 제대로 해석하려면 다음 흐름을 이해해야 한다.
확률을 오즈로 바꾸고, 오즈를 로그오즈로 변환해 회귀모형을 만든 뒤, 회귀계수를 다시 지수화해 오즈비로 해석한다.
로지스틱 회귀분석은 언제 사용하는가
로지스틱 회귀분석은 종속변수가 두 범주로 구분될 때 사용하는 대표적인 회귀분석이다(Hosmer et al., 2013; Kleinbaum & Klein, 2010).
예를 들면 다음과 같다.
| 연구 분야 | 이항 결과변수 |
|---|---|
| 마케팅 | 구매함·구매하지 않음 |
| 고객관리 | 이탈함·유지함 |
| 의학 | 질병 발생·미발생 |
| 교육 | 합격·불합격 |
| 금융 | 연체·정상 상환 |
| 품질관리 | 불량·정상 |
| 웹 분석 | 클릭함·클릭하지 않음 |
결과변수를 일반적으로 다음처럼 코딩한다.
\[
Y=1:\text{사건 발생},\qquad Y=0:\text{사건 미발생}
\]
여기서 어떤 결과를 1로 지정했는지가 매우 중요하다.
구매를 1로 코딩하면 구매 오즈를 분석한다. 미구매를 1로 코딩하면 미구매 오즈를 분석한다. 같은 자료라도 사건의 방향을 바꾸면 오즈비는 역수가 된다.
예를 들어 구매 오즈비가 2라면 미구매를 사건으로 분석한 오즈비는 다음과 같다.
\[
\frac{1}{2}=0.5
\]
따라서 분석보고서에는 결과변수의 사건범주를 반드시 밝혀야 한다.
확률과 오즈는 무엇이 다른가
확률은 전체 가능성 가운데 사건이 발생할 가능성을 나타낸다.
\[
p=\frac{\text{사건 발생 수}}{\text{전체 관측 수}}
\]
100명 중 20명이 구매했다면 구매확률은 다음과 같다.
\[
p=\frac{20}{100}=0.20
\]
오즈는 사건이 발생할 가능성을 발생하지 않을 가능성과 비교한다.
\[
\text{odds}=\frac{p}{1-p}
\]
구매확률이 0.20이라면 오즈는 다음과 같다.
\[
\text{odds}=\frac{0.20}{0.80}=0.25
\]
이는 구매 1건당 미구매가 4건이라는 뜻이다.
\[
0.25=\frac{1}{4}
\]
확률과 오즈의 관계는 다음과 같다.
| 확률 | 오즈 | 해석 |
|---|---|---|
| 0.10 | 0.111 | 사건 1건당 비사건 약 9건 |
| 0.20 | 0.250 | 사건 1건당 비사건 4건 |
| 0.50 | 1.000 | 사건과 비사건 가능성이 같음 |
| 0.80 | 4.000 | 사건 4건당 비사건 1건 |
| 0.90 | 9.000 | 사건 9건당 비사건 1건 |
확률은 0에서 1 사이지만 오즈는 0에서 무한대까지 가능하다.
오즈를 다시 확률로 바꾸는 공식은 다음과 같다.
\[
p=\frac{\text{odds}}{1+\text{odds}}
\]
오즈가 4라면 확률은 다음과 같다.
\[
p=\frac{4}{1+4}=0.80
\]
2×2 표에서 오즈비 계산하기
쿠폰 발송 여부와 구매 여부가 다음과 같다고 하자.
| 쿠폰 발송 | 구매 | 미구매 | 합계 |
|---|---|---|---|
| 발송 | 60명 | 40명 | 100명 |
| 미발송 | 40명 | 60명 | 100명 |
쿠폰 발송군의 구매확률은 60%다.
\[
p_1=\frac{60}{100}=0.60
\]
미발송군의 구매확률은 40%다.
\[
p_0=\frac{40}{100}=0.40
\]
쿠폰 발송군의 구매 오즈는 다음과 같다.
\[
\text{odds}_1=\frac{60}{40}=1.5
\]
미발송군의 구매 오즈는 다음과 같다.
\[
\text{odds}_0=\frac{40}{60}=0.667
\]
오즈비는 두 오즈의 비율이다.
\[
OR=\frac{1.5}{0.667}\approx2.25
\]
일반적인 2×2 표를 다음처럼 나타낼 수도 있다.
| 사건 발생 | 사건 미발생 | |
|---|---|---|
| 노출군 | \(a\) | \(b\) |
| 비노출군 | \(c\) | \(d\) |
오즈비 공식은 다음과 같다.
\[
OR=\frac{a/b}{c/d}=\frac{ad}{bc}
\]
쿠폰 사례에서는 다음과 같다.
\[
OR=\frac{60\times60}{40\times40}=2.25
\]
따라서 쿠폰을 받은 고객의 구매 오즈는 쿠폰을 받지 않은 고객보다 2.25배다.
하지만 구매확률이 2.25배라는 뜻은 아니다.
실제 위험비 또는 확률비는 다음과 같다.
\[
RR=\frac{0.60}{0.40}=1.50
\]
같은 자료에서 오즈비는 2.25지만 위험비는 1.50이다.
로지스틱 회귀분석은 왜 로그오즈를 사용하는가
선형회귀분석을 이항 결과에 그대로 적용하면 예측값이 0보다 작거나 1보다 커질 수 있다.
로지스틱 회귀분석은 확률 \(p\)를 오즈로 바꾸고, 그 오즈에 로그를 취한다.
\[
\log\left(\frac{p}{1-p}\right)
\]
이를 로짓이라고 한다.
여러 독립변수가 있는 로지스틱 회귀모형은 다음과 같다.
\[
\log\left(\frac{p}{1-p}\right)=\beta_0+\beta_1X_1+\beta_2X_2+\cdots+\beta_kX_k
\]
오른쪽 선형식 전체를 \(\eta\)라고 하면 예측확률은 다음과 같다.
\[
p=\frac{\exp(\eta)}{1+\exp(\eta)}
\]
이 변환 덕분에 회귀식의 값이 아무리 작거나 커도 최종 예측확률은 0과 1 사이에 놓인다.
회귀계수 \(\beta\)는 독립변수가 한 단위 증가할 때 로그오즈가 얼마나 달라지는지를 나타낸다.
하지만 로그오즈는 직관적으로 이해하기 어렵다. 그래서 계수를 지수화한다.
\[
OR=\exp(\beta)
\]
이 값이 로지스틱 회귀분석에서 보고하는 오즈비다.
회귀계수에서 오즈비로 바꾸는 방법
쿠폰 발송 여부의 회귀계수가 0.693이라고 하자.
\[
\beta=0.693
\]
이를 지수화하면 다음과 같다.
\[
OR=\exp(0.693)\approx2.00
\]
다른 변수의 값이 같다고 비교할 때 쿠폰을 받은 고객의 구매 오즈가 미발송 고객보다 2배라는 뜻이다.
반대로 회귀계수가 음수라면 오즈비는 1보다 작아진다.
예를 들어 다음과 같다.
\[
\beta=-0.357
\]
\[
OR=\exp(-0.357)\approx0.70
\]
이는 해당 변수가 한 단위 증가할 때 사건 오즈가 0.70배가 된다는 뜻이다.
다르게 표현하면 오즈가 30% 낮아진다.
\[
(1-0.70)\times100=30
\]
오즈비에 따른 기본적인 해석은 다음과 같다.
| 오즈비 | 해석 |
|---|---|
| \(OR=1\) | 오즈 차이가 없음 |
| \(OR>1\) | 사건 오즈가 증가 |
| \(OR<1\) | 사건 오즈가 감소 |
| \(OR=1.50\) | 오즈가 50% 높음 |
| \(OR=0.70\) | 오즈가 30% 낮음 |
| \(OR=2.00\) | 오즈가 2배 |
| \(OR=0.50\) | 오즈가 절반 |
여기서 증가율과 감소율은 모두 확률이 아니라 오즈에 관한 설명이다.
범주형 변수의 오즈비 해석
결제수단을 다음처럼 분류했다고 하자.
- 신용카드
- 계좌이체
- 간편결제
로지스틱 회귀분석에서는 한 범주를 기준범주로 설정한다.
신용카드를 기준범주로 정했다면 결과가 다음처럼 나올 수 있다.
| 변수 | 조정 오즈비 |
|---|---|
| 계좌이체 대 신용카드 | 0.80 |
| 간편결제 대 신용카드 | 1.60 |
간편결제의 오즈비 1.60은 다음처럼 해석한다.
모형에 포함된 다른 변수의 값이 같다고 비교할 때, 간편결제 고객의 구매 오즈는 신용카드 고객보다 1.60배였다.
기준범주를 간편결제로 바꾸면 신용카드의 오즈비는 역수가 된다.
\[
\frac{1}{1.60}=0.625
\]
따라서 다음 두 문장은 같은 내용을 다른 방향에서 설명한다.
- 간편결제 고객의 구매 오즈는 신용카드 고객의 1.60배다.
- 신용카드 고객의 구매 오즈는 간편결제 고객의 0.625배다.
보고서에는 기준범주를 반드시 표시해야 한다.
연속형 변수의 오즈비 해석
연령의 오즈비가 1.03이라고 하자.
이는 연령이 1세 증가할 때 사건 오즈가 1.03배가 된다는 뜻이다.
다른 변수가 같을 때 연령이 1세 높아질수록 구매 오즈가 약 3% 높았다.
그러나 1세 단위의 변화는 실무적으로 너무 작을 수 있다.
10세 증가에 대한 오즈비는 다음과 같이 계산한다.
\[
OR_{10}=\exp(10\beta)
\]
1세당 오즈비가 1.03이라면 다음과 같다.
\[
OR_{10}=1.03^{10}\approx1.34
\]
따라서 연령이 10세 높을 때 구매 오즈는 약 1.34배다.
연속형 변수의 단위는 해석 가능성에 큰 영향을 준다.
| 변수 | 원래 단위 | 권장 해석 단위 |
|---|---|---|
| 연령 | 1세 | 5세 또는 10세 |
| 소득 | 1원 | 100만 원 또는 1,000만 원 |
| 혈압 | 1mmHg | 10mmHg |
| 광고비 | 1원 | 10만 원 또는 100만 원 |
| 체중 | 1kg | 5kg 또는 10kg |
분석 전에 의미 있는 단위로 변환하면 오즈비를 훨씬 쉽게 설명할 수 있다.
예를 들어 연령을 다음처럼 만들 수 있다.
\[
X_{\text{10세}}=\frac{\text{연령}}{10}
\]
이 변수의 회귀계수를 지수화하면 10세 증가에 대한 오즈비가 바로 나온다.
오즈비 2는 확률 2배가 아니다
오즈비가 2일 때 기준확률 \(p_0\)로부터 비교집단의 확률 \(p_1\)을 구하는 공식은 다음과 같다.
\[
p_1=\frac{OR\times p_0}{1-p_0+OR\times p_0}
\]
기준확률이 10%이고 오즈비가 2라면 다음과 같다.
\[
p_1=\frac{2\times0.10}{1-0.10+2\times0.10}\approx0.182
\]
확률은 10%에서 약 18.2%로 증가한다.
기준확률이 50%라면 다음과 같다.
\[
p_1=\frac{2\times0.50}{1-0.50+2\times0.50}\approx0.667
\]
확률은 50%에서 약 66.7%로 증가한다.
기준확률이 80%라면 다음과 같다.
\[
p_1=\frac{2\times0.80}{1-0.80+2\times0.80}\approx0.889
\]
확률은 80%에서 약 88.9%로 증가한다.
| 기준확률 | 오즈비 | 비교확률 | 확률 차이 |
|---|---|---|---|
| 10% | 2.0 | 18.2% | 8.2%포인트 |
| 30% | 2.0 | 46.2% | 16.2%포인트 |
| 50% | 2.0 | 66.7% | 16.7%포인트 |
| 80% | 2.0 | 88.9% | 8.9%포인트 |
같은 오즈비라도 확률 차이는 기준확률에 따라 달라진다.
이 때문에 오즈비만 보고하면 실제 효과의 크기를 직관적으로 이해하기 어렵다.
가능하면 다음 정보를 함께 제시하는 것이 좋다.
- 기준집단의 예측확률
- 비교집단의 예측확률
- 확률 차이
- 필요하면 위험비
- 95% 신뢰구간
오즈비와 위험비는 언제 비슷한가
결과가 드물면 오즈와 확률이 비슷해진다.
예를 들어 사건확률이 1%라면 오즈는 다음과 같다.
\[
\frac{0.01}{0.99}\approx0.0101
\]
확률 0.01과 거의 같다.
따라서 사건이 매우 드문 경우 오즈비는 위험비를 근사할 수 있다.
하지만 결과가 흔해지면 두 값의 차이가 커진다(Zhang & Yu, 1998; Knol et al., 2012).
앞의 쿠폰 사례에서는 다음과 같았다.
- 구매확률: 60% 대 40%
- 위험비: 1.50
- 오즈비: 2.25
오즈비를 “구매 가능성이 2.25배”라고 설명하면 효과가 실제 확률비보다 크게 전달될 수 있다.
“사건 발생률이 10% 미만이면 항상 안전하다”는 식의 절대적인 기준도 적절하지 않다. 오즈비와 위험비의 근사 정도는 기준확률과 효과크기에 함께 좌우된다.
결과가 흔하고 위험비가 연구질문에 더 직접적이라면 다음 방법을 고려할 수 있다.
- 로그이항 회귀
- 강건 표준오차를 사용한 수정 포아송 회귀
- 예측확률을 이용한 표준화
- 위험차이 모형
수정 포아송 회귀는 이항 결과에서 위험비를 직접 추정하기 위한 실용적인 방법으로 널리 사용된다(Zou, 2004).
조정 오즈비는 무엇을 조정하는가
성별과 구매 여부의 단순한 관계를 분석했다고 하자.
조정하지 않은 오즈비는 다음과 같은 모형에서 나온다.
\[
\log\left(\frac{p}{1-p}\right)=\beta_0+\beta_1X
\]
연령, 소득과 과거 구매경험을 추가하면 다음과 같다.
\[
\log\left(\frac{p}{1-p}\right)=\beta_0+\beta_1X+\beta_2A+\beta_3I+\beta_4H
\]
이 모형에서 \(\exp(\beta_1)\)은 연령, 소득과 과거 구매경험의 값이 같은 사람들을 비교할 때의 조정 오즈비다.
다음과 같이 보고할 수 있다.
연령, 소득과 과거 구매경험을 조정한 후 쿠폰 발송군의 구매 오즈는 미발송군보다 1.80배 높았다.
하지만 통제변수를 많이 넣는다고 인과효과가 자동으로 추정되는 것은 아니다.
잘못된 변수를 조정하면 오히려 편향이 생길 수 있다.
- 노출 이전의 교란변수는 조정대상이 될 수 있다.
- 매개변수를 조정하면 총효과의 일부가 제거될 수 있다.
- 충돌변수를 조정하면 새로운 편향이 생길 수 있다.
- 결과를 본 뒤 p값만으로 변수를 선택하면 모형이 불안정해질 수 있다.
통제변수는 이론, 연구설계와 인과구조에 근거해 정해야 한다.
조정 전후 오즈비 차이가 모두 교란 때문은 아니다
선형회귀분석에서는 관련 없는 예후변수를 추가해도 주요 계수의 의미가 비교적 안정적인 경우가 많다.
오즈비에는 비접힘성이라는 특성이 있다.
이 때문에 실제 교란이 없더라도 결과를 잘 예측하는 변수를 로지스틱 회귀모형에 추가하면 조정 오즈비와 비조정 오즈비가 달라질 수 있다(Greenland et al., 1999).
예를 들어 다음 결과가 나왔다고 하자.
- 비조정 오즈비: 1.50
- 조정 오즈비: 1.80
이를 보고 곧바로 “교란 때문에 효과가 과소평가되었다”고 결론 내려서는 안 된다.
차이에는 다음 두 요소가 섞일 수 있다.
- 실제 교란 조정
- 오즈비의 비접힘성
따라서 서로 다른 통제변수를 사용한 모형의 오즈비를 단순 비교해 변수의 영향력을 평가하는 데는 주의가 필요하다.
집단 평균에 대한 효과를 원한다면 예측확률을 이용한 주변표준화나 평균한계효과를 함께 제시하는 것이 도움이 된다(Norton et al., 2019).
95% 신뢰구간은 어떻게 해석하는가
회귀계수의 표준오차가 \(SE\)라면 Wald 방식의 95% 신뢰구간은 다음과 같다.
\[
\beta\pm1.96SE
\]
오즈비의 신뢰구간은 이 경계를 지수화해 계산한다.
\[
\left[\exp(\beta-1.96SE),\ \exp(\beta+1.96SE)\right]
\]
쿠폰의 조정 오즈비가 1.80이고 95% 신뢰구간이 1.20에서 2.70이라고 하자.
다음처럼 해석할 수 있다.
다른 변수를 조정한 후 쿠폰 발송군의 구매 오즈는 미발송군보다 1.80배였으며, 자료와 모형가정 아래에서 95% 신뢰구간은 1.20에서 2.70이었다.
오즈비에서 귀무값은 1이다.
- 신뢰구간이 1을 포함하지 않으면 일반적으로 양측 5% 수준에서 유의하다.
- 신뢰구간이 1을 포함하면 해당 수준에서 통계적으로 유의하지 않다.
그러나 신뢰구간이 1을 포함했다고 “관련성이 없다”고 단정해서는 안 된다.
예를 들어 오즈비가 1.60이고 신뢰구간이 0.90에서 2.85라면 효과가 없다는 증거라기보다 추정의 불확실성이 크다는 의미일 수 있다.
표본이 작거나 사건 수가 적으면 Wald 신뢰구간이 불안정할 수 있다. 이때는 우도비 검정이나 프로파일 우도 신뢰구간을 고려할 수 있다.
상호작용이 있으면 오즈비는 조건에 따라 달라진다
쿠폰의 효과가 과거 구매경험에 따라 달라질 수 있다고 하자.
상호작용을 포함한 모형은 다음과 같다.
\[
\log\left(\frac{p}{1-p}\right)=\beta_0+\beta_1X+\beta_2Z+\beta_3XZ
\]
여기서 다음과 같이 정의한다.
- \(X\): 쿠폰 발송 여부
- \(Z\): 과거 구매경험 여부
- \(XZ\): 상호작용항
과거 구매경험이 없는 고객에서 쿠폰의 오즈비는 다음과 같다.
\[
OR_{X\mid Z=0}=\exp(\beta_1)
\]
과거 구매경험이 있는 고객에서 쿠폰의 오즈비는 다음과 같다.
\[
OR_{X\mid Z=1}=\exp(\beta_1+\beta_3)
\]
상호작용계수의 지수값은 두 오즈비의 비율이다.
\[
\exp(\beta_3)=\frac{OR_{X\mid Z=1}}{OR_{X\mid Z=0}}
\]
상호작용이 포함되면 \(\exp(\beta_1)\)을 모든 고객에게 적용되는 쿠폰 효과라고 해석해서는 안 된다. 이는 \(Z=0\)인 기준조건에서의 오즈비다.
또한 로짓모형의 상호작용항은 오즈비 척도의 상호작용이다. 확률 차이 척도의 상호작용은 사람의 기준위험에 따라 달라질 수 있다(Ai & Norton, 2003).
상호작용 결과는 오즈비뿐 아니라 조건별 예측확률을 그래프로 보여주는 것이 좋다.
예측확률과 한계효과를 함께 제시해야 하는 이유
로지스틱 회귀모형의 결과는 예측확률로 변환할 수 있다.
\[
p=\frac{\exp(\eta)}{1+\exp(\eta)}
\]
다음과 같은 두 가상 고객을 비교할 수 있다.
- 고객 A: 쿠폰을 받지 않음
- 고객 B: 쿠폰을 받음
- 연령, 소득과 과거 구매경험은 동일
모형이 예측한 구매확률이 다음과 같다고 하자.
| 조건 | 예측 구매확률 |
|---|---|
| 쿠폰 미발송 | 25% |
| 쿠폰 발송 | 37% |
확률 차이는 12%포인트다.
\[
37%-25%=12%\mathrm{p}
\]
위험비는 다음과 같다.
\[
\frac{0.37}{0.25}=1.48
\]
오즈비는 다음과 같다.
\[
\frac{0.37/0.63}{0.25/0.75}\approx1.76
\]
세 지표는 같은 자료를 서로 다른 척도로 설명한다.
| 지표 | 값 | 설명 |
|---|---|---|
| 오즈비 | 1.76 | 오즈가 76% 높음 |
| 위험비 | 1.48 | 확률이 48% 높음 |
| 위험차이 | 12%포인트 | 구매확률이 25%에서 37%로 증가 |
일반 독자와 의사결정자에게는 예측확률과 확률 차이가 오즈비보다 이해하기 쉬운 경우가 많다.
평균한계효과는 각 사람의 공변량을 유지한 채 노출 상태를 바꾸어 예측한 확률 차이를 표본 전체에서 평균하는 방식으로 계산할 수 있다(Norton et al., 2019).
로지스틱 회귀분석의 주요 가정과 조건
로지스틱 회귀분석은 종속변수가 정규분포를 따라야 한다고 가정하지 않는다.
그러나 아무 조건 없이 적용할 수 있는 분석은 아니다.
결과변수의 올바른 코딩
어떤 범주가 1이고 어떤 범주가 0인지 확인해야 한다.
관측값의 독립성
같은 고객의 반복구매, 같은 환자의 반복측정, 같은 학교 학생과 같은 지점의 고객은 서로 독립적이지 않을 수 있다.
군집이나 반복측정이 있으면 다음 방법을 고려해야 한다.
- 일반화추정방정식
- 혼합효과 로지스틱 회귀
- 군집 강건 표준오차
- 조사설계를 반영한 로지스틱 회귀
로그오즈와 연속형 변수의 선형성
로지스틱 회귀는 연속형 변수와 확률이 선형이라는 가정을 하지 않는다.
연속형 변수와 로그오즈가 선형이라고 가정한다.
연령이 한 살 증가할 때 오즈비가 언제나 1.03으로 일정하다고 설정했다면 30세에서 31세의 효과와 70세에서 71세의 효과가 로그오즈 척도에서 같다는 뜻이다.
관계가 곡선형이라면 다음 방법을 고려할 수 있다.
- 제한적 삼차 스플라인
- 다항항
- 구간별 선형모형
- 임상적으로 정한 비선형 함수
연속형 변수를 결과를 본 뒤 임의로 두 범주로 나누면 정보와 검정력이 손실될 수 있다(Harrell, 2015).
다중공선성
독립변수들이 지나치게 강하게 관련되어 있으면 개별 회귀계수와 오즈비가 불안정해진다.
충분한 사건과 비사건 수
전체 표본 수가 크더라도 사건이 매우 적으면 추정이 불안정할 수 있다.
과거에는 변수당 사건 10건이라는 규칙이 자주 사용되었다. 그러나 이는 보편적인 법칙이 아니다. 필요한 표본은 사건률, 계수 수, 예상 효과, 변수분포, 과적합과 연구목적에 따라 달라진다(Vittinghoff & McCulloch, 2007; van Smeden et al., 2019).
모형의 올바른 지정
중요한 비선형성, 상호작용과 교란변수가 빠지면 오즈비가 잘못 해석될 수 있다.
완전분리와 희소자료 문제
다음과 같은 자료를 생각해 보자.
| 치료 | 회복 | 미회복 |
|---|---|---|
| 신약 | 20 | 0 |
| 대조약 | 5 | 15 |
신약군에서는 모든 환자가 회복했다.
치료변수가 결과를 완벽하게 구분하는 상황을 완전분리라고 한다.
일반적인 최대우도 로지스틱 회귀에서는 회귀계수가 무한대로 발산할 수 있다.
분석 프로그램에서는 다음과 같은 신호가 나타날 수 있다.
- 계수가 지나치게 큼
- 표준오차가 매우 큼
- 오즈비가 무한대에 가까움
- 수렴 경고
- 예측확률이 정확히 0 또는 1
- 신뢰구간이 비정상적으로 넓음
사건 수가 적고 범주가 세분화되어 있을 때도 희소자료 편향이 나타날 수 있다(Greenland et al., 2016).
대안으로 다음을 고려할 수 있다.
- Firth 편향감소 로지스틱 회귀
- 정확 로지스틱 회귀
- 베이지안 로지스틱 회귀
- 범주의 이론적 통합
- 더 많은 자료 확보
Firth의 벌점우도 방법은 작은 표본의 편향을 줄이고 분리 상황에서 유한한 추정치를 제공하는 데 활용된다(Firth, 1993; Heinze & Schemper, 2002).
오즈비가 유의하다고 좋은 예측모형은 아니다
특정 변수가 통계적으로 유의한 오즈비를 가진다는 사실과 모형이 개인의 결과를 정확히 예측한다는 사실은 다르다.
예측모형은 다음 측면을 평가해야 한다(Steyerberg et al., 2010).
| 평가영역 | 주요 질문 |
|---|---|
| 판별력 | 사건과 비사건을 얼마나 잘 구분하는가? |
| 보정 | 예측확률과 실제 발생률이 얼마나 일치하는가? |
| 전체 정확도 | 예측오차가 전반적으로 얼마나 작은가? |
| 임상·실무 유용성 | 의사결정에 실제로 도움이 되는가? |
AUC는 판별력을 평가한다.
하지만 AUC가 높다고 예측확률이 정확하게 보정되었다는 뜻은 아니다.
예를 들어 위험이 실제로 10%인 사람들에게 40%를 예측해도 사건 순서를 잘 구분하면 AUC는 높을 수 있다.
보정은 다음 방법으로 확인할 수 있다.
- 보정그림
- 보정절편
- 보정기울기
- Brier 점수
Hosmer–Lemeshow 검정 하나만으로 적합도를 판단하는 것은 바람직하지 않다. 이 검정은 표본크기와 위험집단 구분방식에 민감하다.
예측모형에서는 내부검증과 외부검증도 필요하다. 같은 자료에서 개발하고 평가하면 성능이 낙관적으로 보일 수 있다(Van Calster et al., 2019).
로지스틱 회귀의 오즈비는 인과효과인가
로지스틱 회귀분석은 기본적으로 조건부 연관성을 추정한다.
쿠폰 오즈비가 1.80이라고 해서 쿠폰이 구매를 증가시켰다고 자동으로 결론 내릴 수는 없다.
쿠폰이 다음 고객에게 선택적으로 발송되었을 수 있기 때문이다.
- 과거 구매가 많은 고객
- 구매 가능성이 높은 고객
- 특정 등급의 회원
- 최근 장바구니를 이용한 고객
- 마케팅 수신동의 고객
이 경우 쿠폰과 구매의 관계에는 기존 고객특성이 섞여 있다.
인과적으로 해석하려면 다음이 필요하다.
- 무작위배정
- 적절한 비교집단
- 시간적 선후관계
- 교란변수 통제
- 선택편향 검토
- 측정오류 검토
- 연구대상과 분석전략의 사전 정의
관찰자료에서 여러 변수를 통제했다는 사실만으로 모든 교란이 제거되지는 않는다.
따라서 다음 표현이 안전하다.
연령, 소득과 과거 구매경험을 조정한 후 쿠폰 발송은 구매 여부와 양의 연관성을 보였다.
무작위실험이라면 연구설계에 근거해 인과적 해석을 더 강하게 할 수 있다.
환자-대조군 연구에서 오즈비를 사용하는 이유
환자-대조군 연구에서는 결과가 발생한 환자와 발생하지 않은 대조군을 연구자가 정해진 수만큼 표집한다.
따라서 연구자료에서 계산한 질병 비율은 모집단의 질병위험과 일치하지 않는다.
이 때문에 표본만으로 절대위험이나 위험비를 직접 계산하기 어렵다.
반면 노출 오즈비는 적절한 표집설계 아래에서 추정할 수 있다.
결과가 드물면 오즈비가 위험비에 가까워질 수 있다. 다만 오즈비가 어떤 발생률 지표를 추정하는지는 대조군을 어떻게 표집했는지에 따라 달라진다.
“환자-대조군 연구이므로 오즈비는 언제나 위험비다”라고 단정해서는 안 된다.
R로 로지스틱 회귀자료 만들기
쿠폰 발송, 연령과 과거 구매경험이 구매 여부에 관련되는 가상자료를 만들어보자.
set.seed(2026)
sample_size <- 800L
customer_data <- data.frame(
coupon = rbinom(
sample_size,
size = 1,
prob = 0.50
),
age = round(
rnorm(
sample_size,
mean = 40,
sd = 10
)
),
prior_purchase = rbinom(
sample_size,
size = 1,
prob = 0.40
)
)R연령을 40세 기준으로 중심화한다.
customer_data$age_centered <- (
customer_data$age - 40
)R구매확률을 생성한다.
linear_predictor <- (
-2.0 +
log(1.8) *
customer_data$coupon +
log(1.03) *
customer_data$age_centered +
log(2.5) *
customer_data$prior_purchase
)
purchase_probability <- plogis(
linear_predictor
)
customer_data$purchase <- rbinom(
sample_size,
size = 1,
prob = purchase_probability
)
head(
customer_data
)R이 자료는 교육용 가상자료다.
모형을 생성할 때 다음 오즈비를 설정했다.
- 쿠폰 발송: 약 1.8
- 연령 1세 증가: 약 1.03
- 과거 구매경험 있음: 약 2.5
표본변동 때문에 실제 추정치는 이 값과 완전히 같지는 않을 수 있다.
R로 로지스틱 회귀분석 실행하기
glm() 함수와 이항분포를 사용한다.
logistic_model <- glm(
purchase ~
coupon +
age_centered +
prior_purchase,
family = binomial(
link = "logit"
),
data = customer_data
)
summary(
logistic_model
)R출력되는 Estimate는 로그오즈 계수다.
계수를 그대로 해석하기보다 지수화해 오즈비를 계산한다.
R에서 오즈비와 신뢰구간 계산하기
기본 R만으로 오즈비 표를 만들 수 있다.
beta <- coef(
logistic_model
)
standard_error <- sqrt(
diag(
vcov(
logistic_model
)
)
)
critical_value <- qnorm(
0.975
)
odds_ratio_result <- data.frame(
term = names(beta),
coefficient = beta,
odds_ratio = exp(
beta
),
lower_95 = exp(
beta -
critical_value *
standard_error
),
upper_95 = exp(
beta +
critical_value *
standard_error
)
)
round(
odds_ratio_result,
3
)R절편의 지수값도 오즈지만 일반적으로 주요 관심대상은 아니다.
이 예제에서 절편은 다음 조건의 예상 구매 오즈를 의미한다.
- 쿠폰을 받지 않음
- 연령 40세
- 과거 구매경험 없음
중심화하지 않았다면 절편은 연령 0세인 고객을 의미하게 되어 실무적 해석이 어려워질 수 있다.
범주형 변수에 이름 붙이기
0과 1 대신 의미 있는 범주명을 붙이면 결과를 해석하기 쉽다.
customer_data$coupon_group <- factor(
customer_data$coupon,
levels = c(
0,
1
),
labels = c(
"미발송",
"발송"
)
)
customer_data$purchase_history <- factor(
customer_data$prior_purchase,
levels = c(
0,
1
),
labels = c(
"없음",
"있음"
)
)
factor_model <- glm(
purchase ~
coupon_group +
age_centered +
purchase_history,
family = binomial,
data = customer_data
)
summary(
factor_model
)R첫 번째 수준이 기준범주가 된다.
따라서 이 모형에서는 다음과 같이 비교한다.
- 쿠폰 발송 대 미발송
- 과거 구매경험 있음 대 없음
10세 증가에 대한 오즈비 계산하기
연령의 계수가 저장된 값을 이용한다.
age_beta <- coef(
logistic_model
)[
"age_centered"
]
odds_ratio_per_10_years <- exp(
10 *
age_beta
)
odds_ratio_per_10_yearsR1세 단위 오즈비보다 10세 단위 오즈비가 실무적으로 이해하기 쉬울 수 있다.
조건별 예측확률 계산하기
40세이고 과거 구매경험이 없는 고객을 가정한다.
prediction_data <- data.frame(
coupon = c(
0,
1
),
age_centered = c(
0,
0
),
prior_purchase = c(
0,
0
)
)
prediction_data$predicted_probability <- predict(
logistic_model,
newdata = prediction_data,
type = "response"
)
prediction_dataR두 조건의 예측확률 차이를 계산한다.
probability_difference <- diff(
prediction_data$predicted_probability
)
probability_differenceR이 값은 40세이고 과거 구매경험이 없는 가상 고객에서 쿠폰 발송에 따른 예측확률 차이다.
평균한계 예측확률 계산하기
모든 고객의 연령과 과거 구매경험은 그대로 두고 쿠폰 상태만 바꿔 예측할 수 있다.
no_coupon_data <- transform(
customer_data,
coupon = 0
)
coupon_data <- transform(
customer_data,
coupon = 1
)
probability_no_coupon <- mean(
predict(
logistic_model,
newdata = no_coupon_data,
type = "response"
)
)
probability_coupon <- mean(
predict(
logistic_model,
newdata = coupon_data,
type = "response"
)
)
marginal_result <- c(
probability_no_coupon =
probability_no_coupon,
probability_coupon =
probability_coupon,
risk_difference =
probability_coupon -
probability_no_coupon,
risk_ratio =
probability_coupon /
probability_no_coupon
)
marginal_resultR이 결과는 표본의 공변량 분포를 기준으로 표준화한 평균 예측확률이다.
오즈비와 함께 제시하면 효과의 실질적인 크기를 더 쉽게 설명할 수 있다.
R에서 상호작용 오즈비 계산하기
쿠폰 효과가 과거 구매경험에 따라 다른지 분석한다.
interaction_model <- glm(
purchase ~
coupon *
prior_purchase +
age_centered,
family = binomial,
data = customer_data
)
summary(
interaction_model
)
계수를 저장한다.
interaction_beta <- coef(
interaction_model
)
과거 구매경험이 없는 고객에서 쿠폰의 오즈비는 다음과 같다.
or_coupon_no_history <- exp(
interaction_beta[
"coupon"
]
)R과거 구매경험이 있는 고객에서 쿠폰의 오즈비는 다음과 같다.
or_coupon_with_history <- exp(
interaction_beta[
"coupon"
] +
interaction_beta[
"coupon:prior_purchase"
]
)R상호작용항의 지수값은 오즈비의 비율이다.
ratio_of_odds_ratios <- exp(
interaction_beta[
"coupon:prior_purchase"
]
)
c(
coupon_or_no_history =
or_coupon_no_history,
coupon_or_with_history =
or_coupon_with_history,
ratio_of_odds_ratios =
ratio_of_odds_ratios
)R상호작용은 이 숫자만 보고 끝내지 말고 네 조건의 예측확률을 함께 제시하는 것이 좋다.
연령의 비선형성 검토하기
연령과 로그오즈의 관계가 직선인지 확인하기 위해 스플라인모형을 사용할 수 있다.
linear_age_model <- glm(
purchase ~
coupon +
age +
prior_purchase,
family = binomial,
data = customer_data
)
spline_age_model <- glm(
purchase ~
coupon +
splines::ns(
age,
df = 4
) +
prior_purchase,
family = binomial,
data = customer_data
)
anova(
linear_age_model,
spline_age_model,
test = "LRT"
)R우도비 검정만으로 모형을 결정하지 말고 예측곡선, 연구지식과 과적합 가능성을 함께 검토해야 한다.
결과는 어떻게 보고해야 할까
다음처럼만 작성하면 정보가 부족하다.
쿠폰의 오즈비는 1.8로 유의했다.
무엇의 오즈인지, 어떤 변수를 조정했는지, 기준범주가 무엇인지 알 수 없기 때문이다.
보다 좋은 보고는 다음과 같다.
구매 여부를 종속변수로 하는 이항 로지스틱 회귀분석을 실시하였다. 구매를 1, 미구매를 0으로 코딩하였다. 연령과 과거 구매경험을 조정한 결과, 쿠폰 발송 고객의 구매 오즈는 미발송 고객보다 1.80배 높았다, 조정 오즈비 1.80, 95% 신뢰구간 1.25∼2.59, p = .002. 표본의 공변량 분포를 이용해 표준화한 예측 구매확률은 미발송 조건에서 24%, 발송 조건에서 35%였으며 확률 차이는 11%포인트였다. 이 결과는 관찰자료의 조정된 연관성을 나타내며 쿠폰의 인과효과를 단독으로 입증하지 않는다.
보고서에는 다음 정보를 포함하는 것이 좋다.
- 종속변수의 사건범주
- 기준범주
- 독립변수의 단위
- 비조정 및 조정 오즈비
- 95% 신뢰구간
- p값
- 조정변수 선정근거
- 연속형 변수의 함수형태
- 상호작용 포함 여부
- 사건 수와 비사건 수
- 결측자료 처리방법
- 분리와 희소자료 문제
- 예측확률 또는 한계효과
- 모형의 판별력과 보정
- 연구설계에 따른 인과해석의 한계
로지스틱 회귀 오즈비에서 자주 발생하는 오류
오즈비 2를 확률 2배라고 해석한다
오즈가 2배라는 뜻이다. 확률 변화는 기준확률에 따라 달라진다.
오즈비 0.70을 질병확률이 30% 감소했다고 말한다
질병 오즈가 30% 낮다는 뜻이다.
오즈비를 위험비처럼 해석한다
결과가 흔하면 오즈비와 위험비의 차이가 커질 수 있다.
기준범주를 보고하지 않는다
어느 집단과 비교한 오즈비인지 알 수 없다.
연속형 변수의 단위를 확인하지 않는다
소득 1원 증가의 오즈비처럼 의미 없는 결과가 보고될 수 있다.
연속형 변수와 확률의 선형성을 가정한다고 설명한다
로지스틱 회귀가 가정하는 것은 연속형 변수와 로그오즈의 선형관계다.
조정 오즈비를 자동으로 인과효과라고 해석한다
통제변수 추가만으로 선택편향과 미측정 교란이 해결되지는 않는다.
조정 전후 오즈비 차이를 모두 교란으로 해석한다
오즈비의 비접힘성 때문에 교란이 없어도 값이 변할 수 있다.
한 집단에서만 오즈비가 유의하면 상호작용이라고 판단한다
두 집단의 효과 차이를 상호작용항으로 직접 검정해야 한다.
AUC가 높으면 좋은 모형이라고 판단한다
판별력이 높아도 예측확률의 보정이 나쁠 수 있다.
변수당 사건 10건 규칙을 절대적인 기준으로 사용한다
필요한 표본 수는 모형복잡성, 사건률과 연구목적에 따라 달라진다.
수렴 경고를 무시한다
완전분리나 희소자료 때문에 오즈비가 무한대로 발산하고 있을 수 있다.
분석 전에 확인할 질문
- 종속변수는 실제로 두 범주인가?
- 어떤 범주를 사건 1로 코딩했는가?
- 범주형 변수의 기준범주는 무엇인가?
- 연속형 변수의 한 단위는 실무적으로 의미가 있는가?
- 오즈비와 위험비를 구분했는가?
- 결과가 흔한데 오즈비를 확률비처럼 설명하고 있지 않은가?
- 기준확률과 예측확률을 함께 제시할 수 있는가?
- 조정변수는 이론과 연구설계에 근거해 선택했는가?
- 매개변수나 충돌변수를 잘못 조정하지 않았는가?
- 연속형 변수와 로그오즈의 비선형성을 확인했는가?
- 필요한 상호작용이 모형에 포함되어 있는가?
- 관측값은 서로 독립적인가?
- 반복측정이나 군집구조가 존재하는가?
- 사건 수와 비사건 수가 충분한가?
- 완전분리 또는 준완전분리가 발생하지 않았는가?
- 이상치와 영향력이 큰 관측값을 확인했는가?
- 신뢰구간이 충분히 정밀한가?
- 판별력과 보정을 모두 평가했는가?
- 분석목적이 설명인지 예측인지 명확한가?
- 연관성을 인과관계로 확대해석하지 않았는가?
오즈비는 확률로 돌아가야 의미가 선명해집니다
로지스틱 회귀분석에서 오즈비는 독립변수와 이항 결과 사이의 관계를 간결하게 요약한다.
하지만 그 간결함 때문에 오해가 생기기도 한다.
비전공자는 다음 다섯 문장으로 기억할 수 있다.
오즈는 사건확률을 비사건확률로 나눈 값이다.
오즈비는 두 확률이 아니라 두 오즈의 비율이다.
오즈비 2는 확률이 2배라는 뜻이 아니다.
조정 오즈비는 모형에 포함된 다른 변수가 같은 조건에서의 조건부 관계다.
오즈비와 함께 예측확률, 확률 차이와 신뢰구간을 제시해야 한다.
쿠폰의 오즈비가 2라는 결과만으로는 실제 구매확률이 얼마나 변했는지 알 수 없다.
기존 구매확률이 5%인지, 30%인지, 80%인지에 따라 같은 오즈비의 현실적인 의미가 달라진다.
좋은 로지스틱 회귀분석은 회귀계수를 지수화해 오즈비를 만드는 데서 끝나지 않는다.
오즈비를 다시 고객, 환자와 정책결정자가 이해할 수 있는 확률로 바꾸고, 그 차이가 얼마나 불확실한지 설명하며, 연구설계가 허용하는 범위 안에서만 해석해야 한다.
통계모형은 로그오즈로 계산하지만 사람은 확률로 의사결정한다.
참고문헌
Ai, C., & Norton, E. C. (2003). Interaction terms in logit and probit models. Economics Letters, 80(1), 123–129. https://doi.org/10.1016/S0165-1765(03)00032-6
Firth, D. (1993). Bias reduction of maximum likelihood estimates. Biometrika, 80(1), 27–38. https://doi.org/10.1093/biomet/80.1.27
Greenland, S., Mansournia, M. A., & Altman, D. G. (2016). Sparse data bias: A problem hiding in plain sight. BMJ, 352, i1981. https://doi.org/10.1136/bmj.i1981
Greenland, S., Robins, J. M., & Pearl, J. (1999). Confounding and collapsibility in causal inference. Statistical Science, 14(1), 29–46. https://doi.org/10.1214/ss/1009211805
Harrell, F. E., Jr. (2015). Regression modeling strategies: With applications to linear models, logistic and ordinal regression, and survival analysis (2nd ed.). Springer. https://doi.org/10.1007/978-3-319-19425-7
Heinze, G., & Schemper, M. (2002). A solution to the problem of separation in logistic regression. Statistics in Medicine, 21(16), 2409–2419. https://doi.org/10.1002/sim.1047
Hosmer, D. W., Jr., Lemeshow, S., & Sturdivant, R. X. (2013). Applied logistic regression (3rd ed.). Wiley. https://doi.org/10.1002/9781118548387
Kleinbaum, D. G., & Klein, M. (2010). Logistic regression: A self-learning text (3rd ed.). Springer. https://doi.org/10.1007/978-1-4419-1742-3
Knol, M. J., Le Cessie, S., Algra, A., Vandenbroucke, J. P., & Groenwold, R. H. H. (2012). Overestimation of risk ratios by odds ratios in trials and cohort studies: Alternatives to logistic regression. CMAJ, 184(8), 895–899. https://doi.org/10.1503/cmaj.101715
Norton, E. C., Dowd, B. E., & Maciejewski, M. L. (2019). Marginal effects—Quantifying the effect of changes in risk factors in logistic regression models. JAMA, 321(13), 1304–1305. https://doi.org/10.1001/jama.2019.1954
Steyerberg, E. W., Vickers, A. J., Cook, N. R., Gerds, T., Gonen, M., Obuchowski, N., Pencina, M. J., & Kattan, M. W. (2010). Assessing the performance of prediction models: A framework for traditional and novel measures. Epidemiology, 21(1), 128–138. https://doi.org/10.1097/EDE.0b013e3181c30fb2
Van Calster, B., McLernon, D. J., van Smeden, M., Wynants, L., & Steyerberg, E. W. (2019). Calibration: The Achilles heel of predictive analytics. BMC Medicine, 17, 230. https://doi.org/10.1186/s12916-019-1466-7
van Smeden, M., Moons, K. G. M., de Groot, J. A. H., Collins, G. S., Altman, D. G., Eijkemans, M. J. C., & Reitsma, J. B. (2019). Sample size for binary logistic prediction models: Beyond events per variable criteria. Statistical Methods in Medical Research, 28(8), 2455–2474. https://doi.org/10.1177/0962280218784726
Vittinghoff, E., & McCulloch, C. E. (2007). Relaxing the rule of ten events per variable in logistic and Cox regression. American Journal of Epidemiology, 165(6), 710–718. https://doi.org/10.1093/aje/kwk052
Zhang, J., & Yu, K. F. (1998). What’s the relative risk? A method of correcting the odds ratio in cohort studies of common outcomes. JAMA, 280(19), 1690–1691. https://doi.org/10.1001/jama.280.19.1690
Zou, G. (2004). A modified Poisson regression approach to prospective studies with binary data. American Journal of Epidemiology, 159(7), 702–706. https://doi.org/10.1093/aje/kwh090
태그
#로지스틱회귀분석 #오즈비 #OddsRatio #이항로지스틱회귀 #위험비 #예측확률 #한계효과 #회귀분석 #의학통계 #마케팅분석 #고객이탈분석 #임상연구 #R통계 #데이터분석 #통계해석 #예측모형 #상호작용효과








