아래 글을 참고하여 작성한 글입니다. 틀린 부분이 있다면 논의나 피드백은 언제나 환영입니다.
# 문제 상황
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를 정확하게 분리하는 변수를 찾는거라 변수들 간 관계를 더 명확하게 분석하는데 도움이 될 것 같다.
'계량경제학 > 인과추론의 데이터과학' 카테고리의 다른 글
행동 데이터 분석 - 인과관계 다이어그램 이해하기 (chain, fork, collider + cycle) (1) | 2024.01.07 |
---|---|
행동 데이터 분석 - 교란변수 찾기, 벅슨의 역설 (1) | 2024.01.07 |
Matching 예시 (0) | 2023.11.21 |
인과추론의 다양한 접근법 (0) | 2023.11.21 |
Matching (0) | 2023.11.19 |