데이터 과학자가 알아야할 인과적 추론들의 우위관계
2020년 8월 1일  |  By:   |  과학  |  No Comment

(Antoine Rebecq, Toward Data Science)

원문 보기

인과관계를 발견하는 것은 데이터 사이언스 팀이 해야할 가장 중요한 일입니다. 좋은 데이터 과학자는 수집된 데이터를 빠르게 분석해 제품 개발팀이 사용자를 더 깊게 이해할 수 있도록 만드는 일을 합니다. 하지만 때로는 더 정확한 답이 필요한 문제들이 있습니다. 이때는 실제로 존재하는 인과관계와 우연한 결과를 구분할 수 있어야 합니다. 오랜 시간 동안 유효할 진짜 법칙과 일시적으로 유효할 마케팅 기법을 구분해야 합니다. 곧, 인과관계를 찾아야 합니다.

이를 위해서는 절대적인 엄밀함이 요구됩니다. 진정한 인과관계를 이해하지 못할 경우 중요한 발견을 빠뜨릴 수 있으며 잘못된 제품을 내놓게 되어 수백만 달러의 사업자금, 혹은 결정적인 기회를 놓치게될 수 있습니다. 마이크로소프트에서 실험 팀을 이끌었던 론 코하비는 이런 유명한 예를 언급했습니다. 바로 아마존에서 신용카드 발급 제안 버튼의 위치를 바꿈으로써 수백만 달러의 매출을 만들었다는 것입니다.

지난 6년 동안 인과관계를 찾는 것은 데이터 사이언스 분야에서 중요한 주제였습니다. 넷플릭스, 마이크로소프트, 구글 등은 모두 이런 인과관계만을 찾는 팀을 가지고 있습니다. 인과관계는 또한 순수 인공지능 분야에서도 중요해지고 있습니다. 따라서, 인과관계가 자신의 사업에 어떤 의미를 가지는 지를 이해하는 것은 점점 더 중요한 일이 되었습니다.

인과관계의 수준에 따른 근거의 사다리

여기 인과관계의 사다리가 있습니다. 이 설명은 데이터 과학자들에게뿐만 아니라 기업의 경영진에게도 필요한 것입니다.

“사다리”라는 말은 곧, 각각의 기법이 주는 증거의 수준이 다르다는 뜻입니다. 더 높은 수준의 기법이 주는 결과는 더 진실에 가깝고 재현 가능성 또한 더 커집니다. 문제는 이렇게 정확한 기법은 수행이 더 복잡하다는 것입니다. 예를 들어 A/B 테스트는 강력한 도구지만, 전적으로 이 테스트만을 위한 시스템과 기술진이 있어야 합니다.

사다리의 아래 쪽에는 보다 쉽게 가능한 실험이 있습니다. 예를 들어 일반적인 관찰 데이터가 있습니다. 하지만 이를 분석하기 위해서는 더 높은 엄밀성이 필요합니다. 그 분석 결과가 실제 현상일지, 그저 어떤 잡음이거나 아니면 아예 틀린 분석일지를 보이기 위해서는 “강건성 확인(robustness check)”이라는 과정이 필요합니다. 이는 대부분의 인과관계 분석에서 가장 중요한 단계입니다. 곧, 사다리의 아래로 내려갈수록 더 많은 강건성 확인이 필요해집니다.

모순적으로 들릴 수 있지만, 아래쪽 사다리에 사용되는 강건성 확인법이 절대 덜 중요한 것이 아니라는 사실을 강조하고 싶습니다. 관찰 데이터로부터 결론을 내리는데 필요한 방법 중에는 놀라운 것들이 있고, 나는 지난 10년 사이에 여기에 기여한 수잔 아테이나 귀도 임벤스와 같은 이들이 노벨상을 받았다 해도 놀라지 않았을겁니다.

최상위 수준 – 과학 실험

사다리의 가장 위에는 과학 실험이 있습니다. 바로 여러분들이 학교에서 배운 내용입니다. 학생 시절 생물 선생님은 과학 실험이 무엇인지를 말해주기 위해 상자에서 씨앗 여럿을 꺼낸 다음 둘로 나누어 두 개의 화분에 심었습니다. 선생님은 이 두 화분의 환경, 곧 씨앗의 갯수나 흙의 습도 등을 똑같이 만들어야 한다고 말씀하셨습니다.

우리가 측정하려 한 것은 식물의 성장에 빛이 끼치는 영향이었으므로 우리는 화분 하나는 창가에, 다른 하나는 옷장 속에 두었습니다. 2주 후, 창가의 화분에는 작은 새싹들이 틔었지만 옷장 속 화분에는 싹이 거의 올라오지 않았습니다.

두 화분의 차이는 빛의 유무 뿐이었으므로 선생님은 따라서 빛이 식물의 생장에 중요한 역할을 한다는 결론을 내릴 수 있다고 말씀하셨습니다.

간단하게 들립니다. 하지만 이런 실험이야말로 우리가 어떤 사건의 원인을 찾기 위해 할 수 있는 최선의 방법입니다. 문제는 이런 방식은 우리가 실험군(빛을 쬔 화분)과 대조군(옷장에 둔 화분)을 마음대로 할 수 있을때만 가능하다는 것입니다. 실험하고자 하는 한 가지 조건(빛)을 제외한 모든 조건을 동일하게 만들어야 하기 때문입니다. 즉, 이 방식은 사회과학이나 데이터 사이언스에서는 사용하기 어렵습니다.

그럼 이 방식을 왜 여기서 언급하는 것일까요? 이는 이 방식이 바로 다음 이야기할 방식들의 기준이 되기 때문입니다. 모든 인과적 추론은 이런 과학 실험이 불가능한 상황에서 어떻게 이와 비슷한 결과를 만들어낼 것인가의 문제이기 때문입니다.

두번째 수준 – 통계적 실험 (혹은 A/B 테스트)

아마 이 단계는 오늘날 테크 업계에서 가장 잘 알려진 방식일겁니다. A/B 테스트는 다른 분야에서는 무작위 통제 시험(RCT)이라고도 불립니다. 이는 실험군과 대조군의 조건을 완벽하게 통제할 수 없는 상황에서 무작위(randomness)라는 특성과 표본의 수를 늘리는 방법을 이용해 두 집단의 특성이 유사하게 되도록 만드는 것입니다. 큰수의 법칙이나 중심극한정리, 베이지안 추론과 같은 통계학의 근본정리들이 이 방식의 유효성, 곧 결론의 정확성을 보증합니다.

이 실험을 위해서는 이를 위한 플랫폼을 만들어야 합니다. 구글, 아마존, 마이크로소프트 등의 초거대 테크기업에서 이 방식을 어떻게 적용하고 있는지를 설명한 훌륭한 문서들이 많이 있습니다.

물론 이 방식에도 단점은 있습니다. 마이크로소프트의 실험 플랫폼을 만들었던 론 코하비와 그 동료들이 쓴 백서(Controlled experiments on the web: survey and practical guide)는 이를 다루고 있습니다.

세번째 수준 – 준실험 (quasi-experiment)

A/B 테스트는 놀라운 방법이지만 상황에 따라 이를 적용하기 힘들때가 있습니다. 적절한 도구가 없기 때문에(가장 흔한 경우로, 빠르게 이를 위한 플랫폼을 만들기 힘든 상황이거나 플랫폼을 만드는 것이 비효율적이 될 때) 또는 윤리적으로 문제가 있기 때문에, 또는 이미 주어진 데이터를 가지고 이를 분석해야할 때 입니다.

다행히 우리는 이런 상황에서 인과관계를 찾을 수 있는 기법들을 가지고 있습니다. 바로 준실험(quasi-experiments)이라는 것으로 자연 실험(natural experiment)이라고도 불립니다.

준실험은 어떤 자연적인 이유로 실험군과 대조군이 나뉜 상황에서 이들이 비록 완벽하게 무작위로 나뉘지는 않았지만 어떤 결론을 내리기에는 충분할 정도의 무작위로 나뉜 상황을 말합니다. 자연실험의 유명한 예 중에는 추첨을 통해 결정된 베트남 참전 여부를 가지고 참전 여부가 평생의 소득에 어떤 영향을 미쳤는지를 본 연구가 있으며, 또 최저임금이 다른 뉴저지와 펜실베니아의 접경지역을 통해 최저임금이 경제에 어떤 영향을 미치는지를 본 연구 등이 있습니다.

하지만 이 기법은 단점 또한 가지고 있습니다. 준실험에 관심을 가지기 시작한 이들은 거의 불가능한 상황에서도 어떤 기발한 데이터를 희망을 가지고 찾게 됩니다. 내 지인들 중에도 이 자연실험의 매력에 빠져 계량경제학을 택한 이들이 있습니다.

준실험 영역에서 가장 유명한 기법들에는 “차이들의 차이(differences in differences)”( “인과 추론 믹스테잎(Causal Inference Mixtape)”의 스캇 커닝햄은 이 방법이 가장 일반적이라고 말합니다), 회귀 불연속설계(Regression Discontinuity Design), 매칭법, 그리고 아주 기발한 방법이지만 실제 상황에서는 쓰기 힘든 도구변수(instrumental variable) 기법 등이 있습니다. 만약 실험군과 대조군의 차이를 설명하는 모든 요인에 대한 데이터를 가지고 있을 경우, 이 요소들을 포함한 단순한 선형 회귀만으로도 좋은 결과를 얻을 수 있습니다.

네번째 수준 – 반사실(counterfactual)의 세계

이 마지막 단계는 순수한 관찰 결과만을 가지고 인과관계를 추측해야 하는 단계입니다. 테크 업계에서 새로 도입한 어떤 기능이 모든 사용자에게 적용되었을 때 그 효과를 추정하는 경우에 필요한 방법입니다.

아마 당신은 이렇게 말하겠지요. 음, 그 기능을 도입하기 전과 후를 비교하면 되지 않나요? 문제는 그게 그렇게 간단하지 않다는 것입니다. 이 기법에서 우리는 반사실적 대조군을 계산하는 모델을 만들어야 합니다. 여기서 반사실적(counterfactual)이란, “만약 그 기능이 도입되지 않았다면 어떤 일이 일어났을 것인가”를 말합니다. 만약 당신이 서비스 사용자의 수를 어느 정도의 정확성을 가지고 예측하는 모델이 있다면 바로 그 모델을 사용하면 됩니다.

물론 단점은 있습니다. 이 반사실 기법의 핵심은 그 예측 모델의 정확도입니다. 자세하게 들어가지는 않겠지만, 이 말은 그 모델이 단지 정확한 정도를 넘어, 관측 대상에 영향을 주는 요소들을 실제로 “이해”하고 있어야 한다는 뜻입니다. 예를 들어 외부의 경제 상황처럼 신제품 출시와 무관한 교란요인의 경우 그 영향이 없어야 합니다. 곧, 올바른 인과관계를 말하기 위해서는 모델에 이런 사실이 포함되어 있어야 합니다.

이런 점 때문에 반사실 기법을 사용할 때 강건성 검사는 매우 중요해집니다. 마이크로소프트의 두와이(doWhy)와 같은 인과관계 라이브러리는 강건성 검사를 훌륭하게 해냅니다. R 패키지애 구현된 민감도 라이브러리인 tipr 역시 어떤 가정들을 확인하기에 유용합니다. 물론 DAGs 를 이야기하지 않으면서 인과관계에 대해 말할 수 없겠죠. 이들은 반사실을 확인하는데 특히 많이 쓰이는 도구입니다.

(한가지 이야기하고 싶은 것은, 지금의 이 전례없는 Covid-19 위기와 같은 상황에서, 대부분의 예측 모델은 쓸모없을 가능성이 크다는 것입니다. 따라서 반사실적 인과관계 분석에도 사용해서는 안됩니다.)

기술적으로 말해, 네번째 수준의 방법은 세번째 수준의 방법에 약간의 변화를 준 것과 비슷합니다. 예를 들어, 합성 DID(synthetic diff-in-diff)는 DID 와 매칭법을 동시에 사용하는 것입니다. 시계열 데이터의 경우 코절임팩트(CausalImpact)는 매우 유용한 R 패키지입니다. 코절트리(CausalTree) 또한 흥미로운 접근방법을 가지고 있습니다. 일반적으로 말하자면, 특정한 영역에서만 쓰일 수 있게 만들어졌으며 엄밀하게 검증된 모델들이 반사실적 대조군만을 가지고도 인과관계를 발견하기에 적절한 모델이라고 말할 수 있습니다.