해당 포스팅은 "실무로 통하는 인과추론 with 파이썬" 책을 학습하면서 재구성한 글입니다.
1. 인과추론이 필요한 이유
보통 회사에서 제품의 품질이 변동되거나 문제가 발생하게 되면, 데이터 분석가는 해당 원인이 무엇인지 확인하기 위해 다양한 자료들을 살펴보게 되고, 그 과정 중에 다양한 Feature 간의 상관관계를 살펴보는 일이 비일비재하게 이뤄지게 됩니다. 그때마다 과연 A와 B의 상관관계는 있지만, 인과관계가 존재하는지에 대한 의문이 존재했습니다. 보통 통계학을 공부해 본 사람이라면 흔히 상관관계는 인과관계가 아니라고 설명을 많이 들어왔을 것입니다. 저 또한 해당 내용을 익히 들었기 때문에 이번에 인과추론을 공부하면서 어떻게 제품의 문제 원인을 찾을 수 있을지 공부해보려고 합니다.
사람들은 생각보다 인과관계에 기반한 사고를 할 때가 종종 있습니다. 예를 들면, 어느날 갑자기 배가 아파서 화장실을 가게 되었고, 장염에 걸린 경험이 있을 겁니다. 그때마다 항상 사람들이 생각하는 것은 내가 오늘 뭘 잘 못 먹었는가? 어제는 내가 뭘 먹었지 등에 대해 생각하게 됩니다. 물론, 복통을 일으키는 대부분의 요인은 섭취하는 음식 등이 탈이 나서 발생하는 경우가 대부분이기 때문이지만, 의외로 다른 요소 때문에 발생한 문제일 수도 있습니다. 이처럼 일상생활에서도 인과관계에 기반한 사고를 하는 경우가 있습니다.
비슷한 맥락에서 회사에서는 어떤 식으로 인과관계를 접근하게 될까요? 보통 회사의 입장에서는 제품을 제작하고 품질 검사 과정에서 특정 효율이나 성능이 떨어지는 것을 발견하게 되었을 때 이를 해결하고자 노력합니다. 인과추론은 문제의 원인을 찾아 이 원인에 직접 개입하여 효율이나 성능이 떨어지는 것을 방지하고자 하기 위함입니다. 이처럼 인과추론은 원하는 방향으로 결과를 이끌어 내기도, 내가 다시는 동일한 경험을 하지 않도록 방지하기도 합니다. 결국 인과추론이란, 연관관계로부터 인과관계를 추론하는 것에 목적을 두고 있습니다.
2. 인과추론 용어 정리하기
연관관계와 인과관계
연관관계와 인과관계는 인과추론에서 빼먹을 수 없는 이야기이기도 합니다. 앞에 서론에서도 말했듯이, 연관관계가 인과관계로 이어질 수도, 이어지지 않을 수도 있습니다. 하지만, 위에서 말씀드렸듯이, 결국 우리가 인과추론에서 궁극적으로 하고자 하는 것은 연관관계에서 인과관계를 얻어내는 것입니다.
연관관계는 흔히 상관관계로 인식하는 경우가 많지만, 엄밀하게 따지면 두 개의 정의는 미세하게 다릅니다. 연관관계는 두 변수 간에 어떤 관계나 연결이 존재하는 경우이며, 한 변수가 다른 변수와 관련이 있음을 의미합니다. 연관관계에서는 질적 변수에도 사용할 수 있습니다. 상관관계는 두 변수 간의 선형적인 관계를 수치적으로 나타내는 개념입니다. 상관관계의 경우 대개 양적 변수에 사용됩니다.
인과관계는 한 변수가 다른 변수에 직접적으로 영향을 미치는 경우를 말합니다. 원인은 결과보다 항상 시간적으로 선행되어야 하며, 방향성이 명확한 특징을 가지고 있습니다.
대표적으로 흔히 알고 있는 예시 중에, 연관관계와 인과관계가 동일시 되지 않는 예시가 하나 있습니다.
아이스크림 판매량과 익사사고 발생량의 관계성을 살펴보면, 두개의두 개의 상관관계는 아마 존재할 것입니다. 익사사고의 경우 대부분 여름철에 많이 발생할 것이고, 아이스크림 또한 여름철에 많이 판매가 될 것입니다. 이처럼, 두 개의 수치적 데이터는 상관관계에서 양의 상관관계를 가지게 될 것입니다. 하지만, 아이스크림 판매량이 높아진다고 익사사고 발생량이 증가하는 것은 아니기 때문에, 인과관계가 성립될 수 없습니다.
반면에 연관관계와 인과관계가 동일시 되는 예시로는 흡연량과 폐암발생률을 들 수 있습니다. 흡연자는 비흡연자에 비해 폐암에 걸릴 확률이 15~30배가량 높습니다. 또한 폐암환자의 85~90%는 흡연이력이 있습니다. 이처럼 두 개의 관계는 상관관계를 가지면서 인과관계로 연결된다고 볼 수 있습니다.
처치와 결과
인과추론을 학습하다보면, 처치와 결과라는 단어가 나오는데, 여기서 말하는 처치와 결과에 대해 간략히 소개하려고 합니다.
우선, 처치는 구하려는 효과에 대해 개입을 나타낼 때 사용하는 용어로 보통 $T_{i}$ 로 표현하며, 실험 대상 $i$가 처치를 받았을 때, $T_{i} = 1$, 아닌 경우에 $T_{i} = 0$으로 표현합니다. 또한 이러한 처치를 통해 영향을 주려는 변수를 결과라고 하는데, 실험 대상 $i$에 대한 결과를 $Y_{i}$로 표현할 수 있습니다.
인과추론의 근본적인 문제
하지만 인과추론은 근본적으로 1개의 실험대상에게 처치를 할 때, 2개의 경우의 수가 무조건 발생하게 됩니다. 처치를 한 경우와 안한 경우 이렇게 2가지가 존재하지만, 2가지에 대한 경우의 수를 모두 관찰할 수 없다는 것이 근본적인 문제입니다. 만약, 처치에 대해 2가지 모두를 볼 수 있다고 한다면, 처치한 것과 안 한 것을 서로 비교하여 해당 처치의 효과를 확인할 수 있겠지만, 그럴 수 없다는 것이 인과추론에서의 근본적인 문제입니다. 해당 방법에 대해서는 차차 포스팅이 진행되면 설명드릴 수 있을 것 같습니다.
3. 정리
위에서 설명드렸듯이, 인과추론은 기본적으로 연관관계로부터 인과관계를 파악하는 방법입니다. 이러한 방법을 통해 인과관계에서 원인의 인자를 알았다면, 해당 인자에 개입하여 문제를 해결해 나갈 수 있을 것입니다. 또한 오늘 포스팅에서는 인과관계, 연관관계, 상관관계에 대한 차이와 처치와 결과, 인과추론의 근본적인 문제에 대해 간략하게 설명드렸습니다. 다음 글에서는 본격적으로 인과모델을 만들기 위해 다양한 용어들에 대해서 추가적으로 설명할 예정입니다.