데이터분석&인과추론

인과추론 방법론들에 대한 생각: 대체 뭐가 인과관계인지

seungbeomdo 2024. 7. 21. 14:16

 

이게 상관관계냐 아니면 인과관계냐 하는 것은 통계학이나 여러 실증적 사회과학에서 자주 제기되는 상투적인 질문이다. 나는 이 질문을 별로 좋아하지 않는데, 말이 너무 추상적이고 모호해서 그렇다. 도대체 상관관계와 인과관계의 차이를 무엇이라고 엄밀하게 정의할 수 있는가? 그리고 그러한 '엄밀한 정의'를 실증 연구에 적용하기 위한 '실행 가능한 정의'는 무엇인가?

 

다음에 대해서는 어느 정도 합의가 있는 것 같다(내 피셜).

 

첫째, 상관관계는 인과관계를 포함한다.

즉 두 변수가 인과관계를 가지려면 두 변수 간에는 상관관계가 존재해야 한다.

 

둘째, 인과관계라는 말에는 시간적 순서성이 내포된다.

즉 원인의 변화가 먼저 발생해서, 결과의 변화가 나타난다. 이는 다시 말해 상관관계를 구성하는 두 변수 중 무엇이 원인이고 무엇이 결과인지를 명시해야 한다는 의미이다.

 

셋째, 원인이 결과에 미치는 순수한 영향력이 식별돼야 한다.

원인 $X$가 아닌 다른 요소에 의해서 결과가 바뀌는 우연한 관찰을, $X$의 영향력이라고 오해하고 있어서는 안 된다.

 

넷째, 두 변수 간의 인과관계를 논리적 또는 직관적으로 설명 가능해야 한다.

설명 불가능하면 '자주 관측되는 현상'일 뿐이지 인과관계라고까지 말할 수는 없다.

 

 

따라서 독립변수 $X$가 종속변수 $Y$에 인과적 영향을 갖는다는 사실을 보이기 위해서는 다음의 4가지를 보여야 한다.

 

1. 두 변수 간의 상관관계를 보여야 한다. 

2. 독립변수가 종속변수보다 시간적으로 선행함을 보여야 한다(무엇이 독립변수이고 종속변수인지 분명해야 한다).

3. 독립변수의 순수한 영향력의 크기를 식별해야 한다.

4. 독립변수가 종속변수에 영향을 주는 경로에 대해 설명할 수 있어야 한다.

 

 

실증연구자는 무책임한 명제를 실행가능한 가설의 형태로 바꾸고 통계량을 계산해 보여주어야 한다. 

 

1. 두 변수 간의 상관관계를 보여야 한다. 

첫번째 조건을 실행적으로 정의하는 것은 매우 간단하다. 두 변수 간의 상관계수가 0이라는 귀무가설을 기각할 수 있는 수준의 통계량이 관측되면 된다.

 

2. 독립변수가 종속변수보다 시간적으로 선행함을 보여야 한다.

두번째 조건은 실행적으로 모호하다. 물론 데이터를 구성할 때 독립변수의 변화 발생 시점이 종속변수의 발생 시점보다 앞선다는 것을 보이면 되므로 간단하다고 할 수 있다. 그런데 얼마나 앞서야 하는가?의 문제가 있다.

 

이 문제를 어떻게 다루느냐에 따라 회귀식이 달라진다. 오늘 중앙은행에서 금리를 올렸을 때 주가는 오늘 떨어지는가 내일 떨어지는가? 아니면 3개월 후에 떨어지는가? 아니면 오늘부터 6개월 후까지 지속적으로 떨어지는가? 이 관계를 어떻게 실행가능하게 정의하느냐에 따라 회귀식에서 $X$와 $Y$를 무엇으로 할 것인가가 정해진다. 

 

또는 인과적 영향이 존재하는 시간적 거리를 찾는 것 자체를 우리의 과제로 할 수도 있다. 주가와 금리의 관측 시점의 조합을 바꿔가면서 회귀계수 추정값의 변화를 실험하는 것이다. 

 

3. 독립변수의 순수한 영향력의 크기를 식별해야 한다.

세번째 조건은 기술적으로 어렵다. 관심 대상인 독립변수 외의 다른 변수들을 어떻게 통제할 것인가? 실험실 환경에서는 가능할 수 있지만 사회과학에서는 정말 어렵다. 남한이 북한보다 잘 살게 된 것이 경제체제 때문이라는 가설을 실험하기 위해서 국가를 처음부터 만드는 실험을 할 수 없다. 우리는 그냥 온갖 노이즈가 범벅된 데이터를 가지고 머리를 싸맬 뿐이다.  

 

4. 독립변수가 종속변수에 영향을 주는 경로에 대해 설명할 수 있어야 한다.

네번째 조건을 실행적으로 정의하기란 거의 불가능하다. 왜냐하면 이는 본질적으로 데이터로 보여지는 문제가 아니기 때문이다. 그 관계를 믿을 수 있느냐는 우리의 상상력에 달려있다. 주먹으로 사람을 쳤을 때, 사람이 아파하는 데이터가 자주 관측됐다는 것 외에 우리가 뭘 말할 수 있는데? '신발끈을 묶는 행위가 사람을 아프게 한다'라는 주장과 도대체 무슨 차이가 있는데? 이 조건은 실증 연구자들이 고민할 수 있는 철학적 범위를 넘어섰다. 따라서 이 글에서는 다루지 않을 것이다.

 

이 중 1번 과제는 상대적으로 쉽고, 4번 과제는 철학의 문제라고 생각해서 논의에서 제외하면. 통계학에서 실제로 진지하게 다루는 과제는 2번과 3번 과제라고 본다. 실제로 2번과 3번의 관점에서 문제를 다루는 방법론들은 많이 발견할 수 있다.

 

 

2번 과제) 시간적 순서성을 다루는 방법론

 

시간적 순서성을 다루는 방법론에는 "그레인저 인과관계" 모형이 있다. 

이 모형은 각각 시계열 변수인 $X$와 $Y$가 있을 때 $X$가 $Y$에 미치는 인과영향을 다음과 같이 정의한다.

 

만약

(1) t-1 시점, t-2 시점, ...의 $X$를 사용해서 t 시점의 $Y$를 예측하는 회귀계수가 유의하고

(2) t-1 시점, t-2 시점, ...의 $Y$를 사용해서 t 시점의 $X$를 예측하는 회귀계수가 유의하지 않다면

$X$가 $Y$를 "그레인저 인과"한다고 말한다.

 

$X$가 $Y$에 인과영향을 미친다고 말하려면, $X$가 먼저 변화한 후 $Y$가 변화하는 관계여야지, $Y$가 먼저 변화해서 $X$가 변화해서는 안 된다는 직관을 모형화한 셈이다.

 

과거로의 시차(time lag)을 얼마로 두어야 하는가는 사람이 정해주어야 하는 하이퍼 파라미터이다.

시차에 따라서 그레인저 인과가 나타나기도 하고 사라지기도 하기 때문에, 보통은 시차를 바꿔가면서 그레인저를 찾아낸 후, "$X$가 $Y$에 영향을 주는 데에는 얼마의 기간이 걸린다"라는 식으로 이 모델을 많이 활용한다. 

 

3번 과제) 순수한 영향력의 식별을 다루는 방법론

 

순수한 영향력을 식별하려는 방법론들은 주로 "인과추론" 방법론들이라고 부른다. DID 방법, 도구변수 방법 같은 것들이 대표적이다. 

 

인과추론 방법은 결국 독립변수가 종속변수에 영향을 주는 전체 효과 중 오차를 동반해서 종속변수에 영향을 주는 효과를 제거하여, 독립변수의 순수한 효과만을 찾아내는 방법이다. 이를 위해서는 독립변수와 오차항 간의 통계적 상관을 제거하는(제거되었다고 합리적으로 주장할 만한) 테크닉이 필요하다.