Week
07. 인과추론의 기초 (Foundations of Causal Inference)
제7주차. 인과추론의 기초
(Foundations of Causal Inference)
강의 개요: 데이터는 '이유'를 말하지 않는다
학습의 목적
우리는 지난주까지 변수들이 "함께 움직이는지(상관관계)"를 배웠습니다. 하지만 정치는 **"무엇이 무엇을 만드는가(인과관계)"**를 묻는 학문입니다.
방법론적 도전
데이터는 숫자일 뿐, 그 숫자가 왜 변했는지 '이유'를 스스로 설명하지 않습니다.
핵심 질문: "민주주의 국가라서 경제가 성장한 것인가, 아니면 경제가 성장해서 민주주의가 된 것인가?" 이 닭과 달걀의 문제를 푸는 법을 배웁니다.
아침마다 해가 뜰 때 닭이 운다고 해서, 닭의 울음소리가 해를 뜨게 만든다고 믿는 데이터 분석가가 있다면 무엇이 문제일까요?
허위 상관 (Spurious Correlation)
두 변수 \(X\)와 \(Y\)가 통계적으로 매우 밀접하게 연결되어 보이지만, 사실은 아무런 인과적 연결이 없는 상태입니다.
제3의 요인(교란변수)
대개 두 변수 모두에 영향을 주는 '숨은 원인' 때문에 발생합니다.
정치적 예시
소득 수준이 높은 지역에서 투표율이 높을 때, 이것이 '돈' 때문인지 아니면 소득과 연결된 **'교육 수준'** 때문인지 구분해내야 합니다.
Note: 같이 움직인다고 해서 한쪽이 원인인 것은 아닙니다.
"아이스크림 판매량이 늘면 익사 사고가 늘어난다"는 데이터가 있다면, 익사 사고를 줄이기 위해 아이스크림 판매를 금지해야 할까요?
우리가 '원인'이라고 부르기 위해 통과해야 할 관문
- 1. 공변성(Covariation): 원인(\(X\))이 변할 때 결과(\(Y\))도 반드시 같이 변해야 합니다.
- 2. 시간적 우선성: 원인이 결과보다 먼저 일어나야 합니다.
- 3. 비허위성: 다른 외부 요인들을 모두 통제(Control)한 후에도 관계가 살아남아야 합니다.
"정치학에서는 특히 2번과 3번을 증명하는 것이 인과추론의 핵심 전쟁터입니다."
정치학에서 '시간적 우선성'을 증명하는 것이 왜 자연과학보다 훨씬 더 까다로울까요? (예: 지지율과 정책 지지의 선후 관계)
주드아 펄의 3단계 지능 모델
현재의 슈퍼컴퓨터는 1단계 분석은 인간보다 뛰어나지만, 왜 3단계인 '반사실적 추론'에는 서투를까요?
"가지 않은 길"에 대한 과학적 추정
반사실(Counterfactual)의 정의
특정 처치(정책 등)를 받은 대상이, 만약 그 처치를 받지 않았을 때 가졌을 결과값을 의미합니다.
인과효과 = (정책을 받은 현재 상태) - (만약 정책을 받지 않았을 때의 가상 상태)
Problem: "군대를 간 나"와 "군대를 가지 않은 나"를 동시에 관찰할 수는 없습니다.
역사학자들은 종종 "만약 이순신 장군이 없었더라면"과 같은 가정을 합니다. 이것은 소설일까요, 아니면 인과추론의 기초일까요?
우리는 결코 '완벽한 비교'를 할 수 없다
동일한 사람에게 약을 먹이면서 동시에 먹이지 않을 수는 없습니다. 데이터에는 반드시 한쪽이 비어 있습니다.
결측치(Missing Value) 문제
우리는 이 '보이지 않는 데이터'를 어떻게든 논리적으로 메워야만 인과관계를 말할 수 있습니다.
타임머신이 없다면, 우리는 '보이지 않는 반사실'을 어떻게 증명할 수 있을까요?
보이지 않는 값을 추정하기 위한 수학적 프레임워크
\(Y(1)\): 정책 참여 시 / \(Y(0)\): 정책 미참여 시
평균 처치 효과(ATE): 한 개인의 결과는 알 수 없으니, 집단 전체의 평균을 내어 비교하자는 전략입니다.
"이 약을 먹은 사람들의 평균 수명이 길다"는 데이터만으로 이 약이 효과가 있다고 단정할 수 없는 이유는 무엇일까요?
왜 단순 비교가 우리를 속이는가?
정책 참여자와 미참여자가 **시작부터 다른 특성**을 가지고 있는 경우입니다.
예시: 자기계발 교육 참여자는 원래부터 열정이 넘치는 사람일 가능성이 높습니다. 성과가 좋더라도 그것이 교육 때문인지 원래 성향 때문인지 구분하기 어렵습니다.
"대학을 나온 사람의 연봉이 높다"는 결과에서, 대학 교육의 효과와 그들의 원래 지적 능력/배경을 어떻게 분리해낼 수 있을까요?
무작위 배정 실험 (RCT)
동전 던지기 등으로 집단을 무작위로 나누면, '선택 편향'이 사라집니다.
황금 표준 (Gold Standard)
- 두 집단의 모든 특성이 평균적으로 동일해집니다.
- 이때 나타나는 차이는 온전히 처치(Treatment)의 효과입니다.
왜 정치학에서는 "대통령제 vs 의원내각제" 같은 중요한 주제를 무작위 실험으로 해결할 수 없을까요?
윤리적·실천적 문제
왜 실험을 못 할까?
- 윤리적: 전쟁, 빈곤을 강제할 수 없음.
- 실천적: 국가 시스템을 마음대로 바꿀 수 없음.
가장 현실적인 대안
자연 실험(Natural Experiment)이나 이 강의에서 다룰 DID, RDD 등의 인과추론 기법을 사용합니다.
인과관계를 밝히기 위해 윤리를 저버린 연구가 있다면, 그 결과가 아무리 정확하더라도 가치가 있을까요?
화살표로 그리는 사건의 인과적 흐름
개념
변수들 사이의 관계를 화살표(\(\rightarrow\))로 연결한 그림입니다. '누가 누구에게 영향을 주는지' 한눈에 보여줍니다.
- **노드(Node):** 변수 (교육, 소득 등)
- **에지(Edge):** 인과적 방향 (화살표)
규칙
화살표는 거꾸로 돌아올 수 없으며(Acyclic), 우리가 세운 **'이론적 가설'**을 바탕으로 그립니다.
데이터를 돌리기 전에 왜 손으로 화살표를 그려보는 과정이 분석가의 편향을 막아줄까요?
교란변수(Confounder) 제거하기
원인(\(X\))과 결과(\(Y\)) 모두에 영향을 주어 가짜 관계를 만드는 제3의 변수입니다.
예시: '커피(\(X\))'와 '암(\(Y\))'의 관계를 볼 때, '흡연'이라는 교란변수를 통제하지 않으면 오해를 하게 됩니다.
"뒷문 경로(Backdoor Path)를 닫아라"
세상의 모든 교란변수를 우리가 다 알고 통제하는 것이 현실적으로 가능할까요?
매개변수 (Mediator): 통로를 막지 마라
원인이 결과를 만드는 중간 단계에 위치한 변수입니다 (\(X \rightarrow M \rightarrow Y\)).
예시: '민주주의(\(X\))'가 '경제 성장(\(Y\))'을 만드는 통로가 '재산권 보호(\(M\))'일 때, \(M\)을 통제하면 민주주의의 효과가 증발해 보입니다.
우리가 궁금한 것이 '직접적인 효과'인지, 아니면 '전체적인 경로'인지에 따라 통제 여부가 달라져야 하지 않을까요?
충돌변수 (Collider): 가짜 상관관계의 주입
두 변수(\(X, Y\))로부터 동시에 영향을 받는 변수입니다 (\(X \rightarrow C \leftarrow Y\)).
예시: 외모(\(X\))와 연기력(\(Y\))은 무관한데, '유명 연예인(\(C\))' 집단만 분석하면 둘 사이에 가짜 음(-)의 관계가 나타납니다.
소위 '엄친아'들이 공부도 잘하고 성격도 좋은 이유는, 우리가 '성공한 집단'이라는 충돌변수 안에서만 그들을 관찰하기 때문은 아닐까요?
자연이 우리에게 준 '우연한 실험' 기회
무작위 실험(RCT)은 돈이 너무 많이 들고 비윤리적일 때가 많습니다.
대신 우리는 세상에서 벌어지는 사건들 중 **"마치 실험처럼 무작위로 처치가 나뉜 경우"**를 사냥하듯 찾아냅니다.
(사례: 행정 구역 경계선, 갑작스러운 제도 변경, 기상 이변 등)
"실험은 아니지만 실험과 다름없다"고 주장하기 위해 우리는 어떤 논리적 방어막을 쳐야 할까요?
정책 도입 전후의 변화량을 대조하기
기본 논리
정책을 시행한 지역(처치 집단)과 시행하지 않은 지역(통제 집단)의 **변화량**을 비교합니다.
(처치 전후 차이) - (통제 전후 차이)
단순히 정책 후의 두 지역을 비교하는 것보다, 왜 '변화의 차이'를 보는 것이 더 공정할까요?
"만약 정책이 없었더라면..."이라는 상상
가정
정책 시행 전까지 두 집단이 평행하게 움직였다면, 정책이 없었을 때도 계속 평행하게 갔을 것이라는 믿음입니다.
Tip: 과거 수년 동안 두 지역의 그래프가 나란히 달렸는지 확인하세요.
정책 시행 직전에 두 집단의 추세가 엇갈리기 시작했다면, 우리는 이 분석 결과를 믿을 수 있을까요?
경계선 근처에서의 '무작위성' 활용
원리
컷오프(예: 득표율 50%, 시험 점수 60점) 바로 근처에 있는 사람들은 실력 차이가 거의 없습니다.
49.9점(낙제)인 학생과 50.1점(합격)인 학생은 거의 쌍둥이처럼 비슷하지만, '합격'이라는 처치는 극명하게 갈립니다.
"경계선 근처의 우연한 행운(혹은 불운)"
0점과 100점을 비교하는 것보다 49.9점과 50.1점을 비교하는 것이 왜 인과추론에서 더 강력한 증거가 될까요?
끊어진 그래프가 말해주는 정책의 힘
경계선(Cut-off)을 기준으로 좌우의 회귀선이 하나로 이어지지 않고 툭 끊겨 있다면, 그것이 바로 **인과효과의 크기**입니다.
RDD는 "세상은 연속적이지만, 제도는 불연속적이다"라는 사실을 어떻게 이용하고 있나요?
관찰 데이터 속에서 '비슷한 짝'을 찾아라
아이디어
정책을 받은 사람과 조건(나이, 성별, 소득 등)이 아주 비슷한데 정책을 안 받은 사람을 데이터에서 찾아 1:1로 매칭합니다.
성향 점수: 여러 변수를 종합해 '정책을 받을 확률'을 0~1 사이 점수로 계산한 것입니다.
점수가 비슷한 사람들끼리 비교하면, 마치 무작위 실험을 한 것처럼 배경 차이가 사라집니다.
우리가 가진 데이터에 '성격'이나 '의지' 같은 변수가 없다면, PSM으로 만든 짝꿍이 정말 '쌍둥이'라고 장담할 수 있을까요?
직접 손댈 수 없는 원인을 '도구'로 움직이기
독립변수(\(X\))와 종속변수(\(Y\)) 사이에 우리가 측정할 수 없는 숨은 변수가 끼어들어 인과관계를 방해할 때 사용합니다.
\(Z \rightarrow X \rightarrow Y\)
\(Z\)는 \(X\)에만 영향을 주고, \(Y\)에는 직접 영향을 주지 않는 제3의 변수입니다.
오염된 물(\(X\))이 건강(\(Y\))에 미치는 영향을 알기 위해 '정수기 보급 정책(\(Z\))'이라는 도구를 활용하는 것과 같습니다.
우리 주변에서 \(X\)를 변화시키지만 \(Y\)에는 직접 아무 짓도 하지 않는 '순수한 도구'를 찾기란 왜 어려울까요?
Python으로 DID 분석 구현하기
import statsmodels.formula.api as smf
# group(0,1), time(0,1) 변수 활용
# 상호작용 항(group:time)이 인과효과
model = smf.ols(formula='outcome ~ group * time', data=df).fit()
print(model.summary())
결과표에서 `group:time`의 p-value가 0.05보다 크다면, 해당 정책은 실패한 것일까요, 아니면 효과가 입증되지 않은 것일까요?
강제 변수와 임계값
원리: 임계값 바로 근처에 있는 사람들은 '거의 비슷'하지만, 우연히 처치 여부가 갈립니다.
예: 득표율 50.1%(당선) vs 49.9%(낙선). 두 후보의 개인적 역량 차이는 거의 없으나 '당선'이라는 처치는 극명하게 나뉩니다.
컷오프에서 멀리 떨어진 데이터(예: 80% 득표 vs 20% 득표)를 RDD 분석에 포함하는 것이 왜 위험할까요?
IV의 수학적 구현: 오염 성분 걸러내기
1단계: \(Z\)를 이용해 \(X\)를 예측합니다. 이때 \(X\) 중에서 '깨끗한 부분(\(\hat{X}\))'만 추출합니다.
2단계: 추출된 깨끗한 성분(\(\hat{X}\))을 사용하여 \(Y\)와의 관계를 분석합니다.
이 과정을 거치면 비로소 교란변수의 방해를 받지 않는 **순수한 인과적 기울기**를 얻을 수 있습니다.
왜 한 번에 계산하지 않고 굳이 '예측값'을 먼저 구하는 번거로운 단계를 거치는 것일까요?
RDD 시각화 및 분석
import seaborn as sns
# 컷오프(0) 기준 좌우 회귀선 별도 생성
sns.regplot(x='score', y='out',
data=df[df.score < 0])
sns.regplot(x='score', y='out',
data=df[df.score >= 0])
그래프에서 두 회귀선이 만나는 지점이 끊겨 있지 않고 이어져 있다면, 인과효과가 존재한다고 말할 수 있을까요?
성향 점수 매칭의 논리
- 모든 교란변수를 종합하여 '처치를 받을 확률'을 계산합니다.
- 점수가 비슷한 사람끼리 Matching하여 선택 편향을 제거합니다.
- "조건은 비슷하지만 우연히 처치를 받은 사람과 안 받은 사람"의 대결입니다.
만약 우리가 측정하지 못한 중요한 변수가 있다면, 점수가 같다고 해서 두 사람이 정말 '닮은 꼴'이라고 할 수 있을까요?
파이썬을 이용한 매칭 알고리즘 실행
from psmpy import PsmPy
# 성향 점수 계산 및 1:1 매칭
psm = PsmPy(df, treatment='treated',
indep_vars=['age', 'income', 'edu'])
psm.knn_matched(matcher='propensity_score')
매칭 후 두 집단의 특성(평균 등)이 비슷해졌는지 확인하는 과정(Balance Check)은 왜 필수적일까요?
도구 변수의 두 가지 조건
1. 관련성 (Relevance)
\(Z\)는 독립변수(\(X\))와 강한 상관관계가 있어야 함.
2. 배제 제약
\(Z\)는 오직 \(X\)를 통해서만 \(Y\)에 영향을 주어야 함.
"비가 오면 투표율이 떨어진다"는 연구에서 '강수량'을 도구 변수로 쓸 때, 정치 결과에 다른 경로로 영향을 주진 않을까요?
통계적 유의성보다 중요한 '인과적 크기'
방향과 크기
계수(\(\beta\))가 양(+)인지 음(-)인지, 그리고 그 크기가 정책적으로 얼마나 의미 있는 수준인지 파악해야 합니다.
p-value는 "이 효과가 진짜인가"를 말해주지만, **계수의 크기**는 "이 효과가 얼마나 중요한가"를 말해줍니다.
효과는 확실한데(p < 0.01) 그 크기가 0.0001에 불과하다면, 정부는 그 정책에 예산을 투입해야 할까요?
"교육이 소득을 얼마나 높이나?"
"다른 모든 조건(능력, 부모 소득 등)이 같다면, 교육 기간이 1년 늘어날 때 월 소득은 평균 10% 증가한다."
이 문장은 단순한 상관관계가 아니라, **인과적 경로**를 상상하며 내뱉는 데이터 분석가의 책임감 있는 결론입니다.
"모든 조건이 같다면(Ceteris Paribus)"이라는 단서 없이 내린 결론이 왜 위험할까요?
좋은 연구를 판별하는 3가지 질문
- **식별(Identification):** "비교 대상이 정말 적절한가?"
- **설명(Mechanism):** "왜 그런 결과가 나왔는지 설명 가능한가?"
- **강건성(Robustness):** "데이터를 조금 바꿔도 결과가 유지되는가?"
데이터가 많다고 인과추론이 저절로 되지 않습니다. **논리적인 설계**가 데이터를 이깁니다.
빅데이터 시대에 통계 모델보다 '연구 설계'가 더 중요해지는 이유는 무엇일까요?