[인과추론] “IQ 높이려면 발을 키우라고요?” – 상관관계에 속지 않는 법

 

 🔍 핵심 주제 

“E가 증가할수록 O가 더 많이 발병한다. 따라서 O의 발생을 줄이기 위해선 E를 잘 관리해야 한다.”

 

이런 주장을 논문에서 설득력 있게 제시하려면,

위 관계가 단순한 상관관계가 아닌 명확한 인과관계임을 보여야 합니다.

즉, Exposure(E) → Outcome(O)이라는 경로가 다른 요인들에 의해 왜곡되지 않았다는 걸 증명해야 해요.

 


 💡 왜곡되어 버린 거짓 인과관계 

blob

 

"IQ 높은 아이는 신발 사이즈도 크대요. 그러니 IQ를 높이려면 발 사이즈를 키워야겠네요!"

 

이런 말, 어딘가 이상하지 않나요?

 

🧠 사실은 이렇습니다:

- 나이가 많을수록 발도 크고, IQ도 높죠.

- 즉, 나이라는 공통 원인(confounder) 때문에 신발 사이즈와 IQ가 관련 있어 보이는 겁니다.

 

이처럼, 교란 변수(confounder)에 의해 만들어진 관계를 마치 인과관계처럼 착각하는 건 흔한 실수예요.

🔑 해결 방법:  이러한 교란 변수가 있는 경우,

'보정'을 해주어야 보다 명확한 인과 관계에 근접해질 수 있습니다.

 


 🧭 보정의 의미? 

보정(Adjustment)이란,

E와 O 사이의 인과관계를 명확히 파악하기 위해 교란 변수의 영향을 제거하는 과정이에요.

 

✅ 가장 쉬운 보정 방법: 회귀 모델에 포함시키기

model = sm.Logit(IQ ~ 발사이즈 + 나이).fit()

 

이 모델은 같은 나이 조건에서 발사이즈가 IQ에 미치는 영향을 보여줘요.

→ 즉, 나이라는 혼란 요인(confounder)을 통제한 채로 신발 크기의 효과만 뽑아내는 것!

etc-image-1
hmm... 신발 사이즈 영향, 별 거 없네?

 

✅ 회귀 외에도 보정은 가능합니다

1. Matching (매칭)

같은 나이대인 아이들끼리 비교하기

 

예: 8살이고 신발 210mm인 아이와, 비슷한 나이지만 190mm인 아이 비교

→ 나이의 영향을 통제한 상태에서 신발 크기만 다를 때의 IQ 차이 관찰

 

2. Weighting (가중치 부여)

나이에 따라 중요도를 조절하기

 

예: 10살이 많은 집단에 편중되어 있다면, 5살 아이에게 더 높은 가중치를 부여해 균형 잡기

→ 전체 데이터를 "가상의 실험 집단"처럼 조정해서 분석

 


 ⚠️ 그런데 모든 변수를 보정하면 안 됩니다! 

신발 사이즈와 IQ 사이에 영향을 주는 게 꼭 confounder(교란 변수)만 있는 건 아니에요.

 

예를 들어:

스트레스가 우울증에 영향을 미치는데,
그전에 스트레스로 인해 잠을 못 자서
우울증이 생기는 경우가 많아요!

etc-image-2

 

스트레스 → 수면의 질 → 우울증

이때 수면의 질은 매개 변수(mediator)일 수 있습니다!

 

이럴 때 수면의 질을 보정하게 되면,
- 스트레스가 수면의 질을 감소시킴으로써 우울증에 영향을 미치는 경로까지 잘라버리게 되고,
- 그 결과 스트레스의 전체적인 효과가 아닌 '직접 효과'만 남게 됩니다.

즉, 보정은 했지만 오히려 우리가 알고 싶은 진짜 인과 효과(스트레스 전체 영향력)를 과소평가하게 되는 거죠.

 

🔑 해결 방법: 따라서 매개 변수는 단순히 보정할 게 아니라,

중재 분석(mediation analysis)을 통해 따로 분석해주어야 합니다.

 


 ⚠️ Collider (충돌 변수)도 주의해야 합니다 

Collider는 E와 O가 공통으로 영향을 주는 변수예요.

 

예를 들어:

A: 편두통, B: 무릎 관절염, v: 입원 여부
이 두 질환은 서로 아무 관련 없는 질병이에요.
하지만 병원에 입원한 환자만 모아놓고 보면?

etc-image-3

 

- 무릎 관절염으로 입원한 사람은 대부분 머리가 멀쩡하니까 “편두통 없음”

- 편두통으로 입원한 사람은 대부분 다리가 멀쩡하니까 “무릎 통증 없음”

 

그래서 데이터만 보면:

“편두통 있는 사람은 관절염이 적네?”, “관절염 있는 사람은 두통이 없네?”

라는 거짓된 음의 상관관계가 생깁니다.

 

이건 단지 입원한 사람이라는 조건(v) 때문이에요.

입원이라는 결과가 A와 B 모두에 의해 결정되면서,
E → v ← O 구조가 생기고, 그 안에서 거짓 관계가 만들어진 거예요.

 

🔑 해결 방법: Collider는 절대로 보정하면 안 됩니다.

관계 구조를 먼저 파악하고, Collider가 포함되지 않도록 주의하세요.

 


 🔄 Effect Modifier (효과 수정 변수)는 해석이 달라요 

Effect Modifier는 E가 O에 미치는 효과의 크기가 다른 조건에 따라 달라지는 변수예요.

 

예를 들어:

특정 약물(E)이 혈압(O)에 미치는 효과가 나이(v)에 따라 다를 수 있어요.
젊은 사람에게는 효과가 크고, 나이 든 사람에게는 작을 수 있는 것이죠.

etc-image-4

 

이때 단순히 나이를 보정하면 평균 효과만 보이기 때문에,

- 효과 차이를 놓치게 됩니다.

- 대신, 상호작용(interaction) 항을 모델에 포함시켜야 해요.

 

model = sm.Logit(혈압 ~ 약물 + 나이 + 약물×나이).fit()


🔑 해결 방법: 단순 보정보다는 interaction term을 통해 효과가 달라지는 패턴 자체를 분석하세요.

 


 🛠 Instrumental Variable (도구 변수)로 인과를 우회하기 

도구 변수는 confounding이 제거되지 않을 때 우회적으로 인과 효과를 추정하는 도구입니다.

 

조건은 아래와 같아요:

1. 도구 변수(v)는 Exposure(E)에 영향을 준다.

2. 도구 변수는 Outcome(O)에 직접적인 영향을 주지 않는다.

3. 도구 변수는 Confounder와도 관련이 없어야 한다.

 

예를 들어:

집에서 학교까지의 거리(v)는 학교 지각률(E)에 영향을 주지만,
성적(O)에는 직접 영향을 주지 않음
→ 집에서 학교까지의 거리를 도구 변수로 사용 가능

etc-image-5

 

어떤 변수(E)가 결과(O)에 영향을 주는지 알고 싶은데,
그 변수(E)가 다른 복잡한 요소(confounder)랑 얽혀 있어서,

그냥 회귀분석을 돌려선 진짜 원인인지 알 수 없을 때가 있어요.

→ 이럴 때 바로 이러한 도구 변수를 활용할 수 있어요!

 

이 도구 변수를 통해 E만 간접적으로 조작한 것처럼 흉내 내고,
그 효과가 O에 미치는 영향을 따로 보는 거죠.

 

도구 변수를 활용한 2단계 분석(2SLS)은 이런 흐름이에요:

1️⃣ 1단계: 도구 변수(Z)를 이용해 E를 예측

→ Z가 크면 E가 어떻게 달라지는지 보는 단계

2️⃣ 2단계: 그 예측된 E로 O를 다시 예측

→ 원래 E 대신 “Z가 만든 E”를 넣는 느낌

 

그렇게 하면, E가 confounder 없이 순수하게 O에 어떤 영향을 미치는지 볼 수 있어요.

 

🔑 해결 방법: 도구 변수는 보정 대상이 아니라, 인과 추정을 위한 도구로 모델링에 활용하세요.

 


 🎯 변수 관계 정리: 5가지 핵심 유형 

Confounder (교란 변수) v → E → O, v → O ✅ 반드시 보정 안 하면 E→O 관계 왜곡됨
Mediator (매개 변수) E → v → O 🚫 보정 X 전체 효과가 아닌 직접 효과만 남게 됨
Collider (충돌 변수) E → v ← O 🚫 보정 X 인위적 상관관계 생김 (Selection Bias 가능성)
Effect Modifier (효과 수정 변수) E → O, v가 영향 조절 ⚠️ 상호작용 항 추가 효과가 v4 값에 따라 달라짐
Instrumental Variable (도구 변수) v → E → O, v ⊄ O ⚠️ 직접 보정 X 인과 추정 도구로 사용 (2SLS 등)

 


 🧠 결론

논문에서 "E가 O에 영향을 준다"는 주장을 하려면:

 

1. Confounder는 반드시 보정하고
2. Mediator는 보정하면 안 되고 따로 분석하며
3. Collider는 보정 절대 금지
4. Effect Modifier는 상호작용 분석
5. Instrumental Variable은 보정보다는 도구로 활용해야 합니다.

그리고 이 모든 관계를 명확히 파악하려면, 먼저 DAG(Directional Acyclic Graph)를 그려보는 것이 출발점이에요.

→ 구조를 보면 어떤 변수는 보정하고, 어떤 변수는 빼야 할지 훨씬 선명해집니다.

스크 린샷 2025-03-31 오전 12.32.57.png

 


 

다음엔 인과추론을 위한 더 구체적인 방법론과 함께 찾아오겠습니다!

감사합니다.