본문 바로가기

계량경제학/인과추론의 데이터과학

Logistic Regression - Quasi Separation problem

아래 글을 참고하여 작성한 글입니다. 틀린 부분이 있다면 논의나 피드백은 언제나 환영입니다. 

https://stats.oarc.ucla.edu/other/mult-pkg/faq/general/faqwhat-is-complete-or-quasi-complete-separation-in-logistic-regression-and-what-are-some-strategies-to-deal-with-the-issue/

 

FAQ What is complete or quasi-complete separation in logistic regression and what are some strategies to deal with the issue?

 

stats.oarc.ucla.edu

 

 


# 문제 상황 

import statsmodels.formula.api as smf
model = smf.logit("Y ~ X1 + X2 + X3 + X4", data=data).fit()
print(model.summary())

 

logistic regression의 summary에 Quasi Separation 이라는 warning이 출력되었다.

관측치의 14%가 완벽하게 예측되었다고 하는데, 특정 변수가 Y를 정확하게 설명하는 경우가 있으며, 이럴 땐 실험 설계가 잘못되었을 수도 있다고 한다. 

 

Y X1 X2
0 1  3
0 2  2
0 3 -1
0 3 -1
1 5  2
1 6  4
1 10 1
1 11 0 

 

위의 데이터에서 perfect quasi-separation이 발생한다. 

X1<=3이면 모든 Y = 0이고, X1 > 3이면 모든 Y = 1이고, 이럴 땐 굳이 logistic regression을 써가면서 모델을 추정할 필요가 없다! 

 

# quasi-separation이 발생할 수 있는 상황들

결과 변수의 또 다른 버전이 예측 변수로 사용될 때 (X1이 아니라 Y'였다!)

데이터셋의 크기가 작을 때 - 데이터를 더 수집하면 X1와 Y의 관계가 깨질 수도 있음 

※ 나의 경우에는 데이터셋 자체는 크지만, y = 1의 비율이 너무 적은데서 발생하는 문제였다

# 아하 포인트

quasi-separation은 X와 Y의 다중공선성이라고도 말할 수 있을 것 같다. 

원래 다중공선성은 입력변수 간 correlation이 강한 문제인데, 입력변수와 종속변수 간 상관관계가 큰 걸 quasi-separation이라고 할 수도 있겠다. 

quasi-separation은 prediction의 관점에서는 해결해야 할 문제이지만, 변수들 간 관계를 찾아내는 causal inference의 관점에서는 오히려 Y를 정확하게 분리하는 변수를 찾는거라 변수들 간 관계를 더 명확하게 분석하는데 도움이 될 것 같다.