이 글은 NC233 블로그에 올라온 글 ‘Causal Inference cheat sheet for data scientists’ 의 번역 버전입니다.
이해 부족과 번역의 미숙함에 의한 문제는 오롯이 저의 부족함 때문입니다. 딱딱한 번역이 되지 않기 위해 약간 표현을 바꾼 번역도 있으니 필요시 원문과 비교하며 보는 것도 좋겠습니다.
규모에 상관없이 인과성을 고찰하는 것이 데이터 사이언스 팀의 핵심 비즈니스 가치다.
퀵 분석(quick analytics를 빠른 분석이라고 하는 것보다 어감을 강조하기 위해 퀵 분석으로 번역 - 역자주)(다른 말로, 기술 통계)은 훌륭한 데이터 분석가가 프로덕트 팀과 협업시 빠른 사이클로 유저를 이해하기 위해 필수적인 작업이다. 하지만 때로는 더 정확한 답을 요구하는 중요한 문제들도 생긴다. 사업적 가치라는 것은 우연적 소음으로부터 진정한 인사이트를 분별해내는 것을 의미할 때도 있다. 일시적인 마케팅 요소와 다른 인사이트, 즉 인과성이다.
이런 인과성에 대한 질문에는 굉장한 엄밀함이 요구된다. 핵심 메커니즘을 잘못 이해하면 중요한 발견거리를 놓치고, 잘못된 버전의 프로덕트를 내놓게 되며, 무엇보다 사업의 수백만 달러 혹은 중요한 기회를 날려버리게 된다.
마이크로소프트에서 실험팀을 지휘했던 Ron Kohavi는 유명한 일화를 얘기했다: 아마존에서 신용카드를 노출하는 위치를 바꿨는데 회사가 수백만 달러 수익을 올렸던 사건 말이다.
테크 회사들이 지난 6년간 인과추론을 데이터 사이언스에서 핫 토픽이 되도록 만들어왔다. 넷플릭스, 마이크로소프트, 구글 모두 인과 방법론에 관련된 여러 팀을 구성했다. 인과분석은 (드디어!) 순수 AI 분야에서도 수요가 발생중이다. 인과추론이 당신과 당신의 사업에 어떻게 활용될 수 있을지 생각하는 것이 점점 중요해지고 있다.
인과추론의 과학적 근거(evidence) 레벨 사다리
인과 추론 사다리 치트시트이기 때문에, 이 시트가 데이터사이언티스트로서 어떤 가치가 있는지 이상으로, 내부 고객에게 이 슬라이드로 우리가 어떻게 데이터를 가공하고 결론을 도출하는지 설명해 성공적으로 설득한 경험이 있다.
이 사다리 분류법은 각 방법을 통해 얻을 수 있는 결과의 신뢰성 정도 를 설명한다. 높을수록 해당 방법으로 얻은 결과가 실제와 가깝고 재생산 가능성도 높다. 다만 실험설계가 복잡해진다는 단점이 있다. 예를 들어 A/B 테스트는 일반적으로 해당 목적에 맞는 프레임워크와 엔지니어링 자원을 필요로 한다.
사다리 아래쪽으로 갈수록 세팅에는 별로 노력이 들지 않는다(관측 데이터를 생각해보자). 하지만 분석의 엄밀함에 있어서는 굉장한 노력이 든다. 당신이 분석으로 진실을 발견했고 단순한 소음을(더 심한 경우 그냥 틀린 것을) 짚은 건 아닌지 확인하는 절차를 강건성 확인(robust check) 이라고 한다. 이 과정이야말로 논란의 여지 없는 인과분석 방법론의 가장 중요한 파트다. 만약 내가 당신의 리뷰어라면 사다리 아래로 갈수록 이 강건성 확인을 강하게 요구할 거다 🙂
그렇다고 낮은 위치의 방법론들이 가치가 낮다고 생각하진 말라 (오히려 그 반대다!). 낮은 위치의 방법론들은 관측 데이터만으로 결론을 이끌어내는 훌륭한 방법론이고 지난 10년간 이 방법론들에 기여한 Susan Athey와 Guido Imbens가 노벨상을 탄다해도 나는 전혀 놀라지 않을 것 같다.
단계 1 – 과학적 실험
사다리의 꼭대기에는 전형적인 과학적 실험이 위치한다. 아마 초등학교나 중학교에서 배웠을만한 개념이다. 과학적 실험이 어떻게 설계되어야 하는지 알려주기 위해 내 초등학교 생물학 선생님은 박스에서 씨앗을 꺼내 두 그룹을 나누어 다른 항아리에 심으셨다. 선생님은 우리에게 씨의 갯수, 흙의 습기 등 두 항아리의 모든 조건이 같다고 했다.
빛이 식물의 성장에 대한 영향을 측정하기 위해 우리는 한 항아리는 창문 옆에 하나는 옷장에 두었다. 2주 후, 창문 옆 항아리에서는 새싹이 잘 자란 반면 옷장의 항아리에서는 거의 자라지 않았다.
빛노출만이 유일한 차이였으므로 빛이 없으면 식물이 자라지 않는다고 결론내릴 수 있다 고 선생님이 말씀하셨다.
심플하지 않은가? 귀인을 알아내려할 때 기본적으로 가장 엄밀하게 할 수 있는 방법이다. 나쁜 소식이라면 당신이 통제집단(빛을 쐬는 그룹)과 실험집단(옷장에 있는 그룹)에 대한 일정 수준 이상의 통제권을 가져야만 이걸 할 수 있다는 거다. 실험하고자 하는 단 하나의 변수만 제외하고 모두 동일하게 통제해야 한다는 것인데 명백히 이건 사회과학이나 데이터 사이언스에서 불가능하다.
근데 왜 이 얘기를 했냐고? 참고용이다. 모든 인과 추론 방법론들은 선생님이 엄격한 규칙을 따르지 않으면 결론을 내선 안된다고 했던 이 단순한 방법론을 특정 조건하에서 잘 작동하도록 디자인 된 것 뿐이다.
단계 2 - 통계적 실험 (a.k.a. A/B 테스트)
아마 기술업계에서 가장 잘 알려진 인과 추론 방법론은 A/B 테스트가 아닐까 싶다 - 우리 바이오통계 친구들은 무작위 대조군 연구(RCT)로 알고 있을 거다. 통계적 실험은 정확히 같은 조건의 실험집단과 통제집단을 만들 수 없는 현실을 임의성과 표본규모를 통해 완화하는 것이다. 큰 수의 법칙, 극한중심정리, 베이지안 추론 같은 기초적인 통계 이론이 이 실험이 잘 동작할 거라는 것을 보장해주고 당신이 수집한 데이터로부터 추정치나 정확도를 추론하는데 도움을 줄 거다.
명백히 실험 플랫폼은 (기반시설이 다 갖춰지기만 했다면) 데이터사이언스 팀이 투자해야할 최우선 프로젝트다. 실험 문화를 테크기업에 심는 것의 효과는 이미 증명되었고 구글, 아마존, 마소 등의 회사에 조단위의 돈을 벌어다 줬다.
A/B 테스트는 당연히 보고서에서는 아름답지만, 고려사항도 많다. 이럴땐 Ron Kohavi와 마소의 실험플랫폼 창립멤버들이 작성한 이 백서가 도움될 거다.
단계 3 - 준실험
A/B 테스트가 강력한만큼이나 조건이 잘 안 갖춰지면 그만큼 퍼포먼스가 안나오기도 한다. 툴이 안 갖춰졌거나(테크 기업에서 특정 프레임워크에 실험을 위한 적절한 툴을 빠르게 갖추기 어렵거나 툴개발이 비생산적일 때 흔한 케이스), 윤리적 고려사항이 있거나, 그저 스터디 목적으로 사후 데이터를 분석할 때 이런 일이 발생한다. 다행히 이런 상황에 요인의 인과성을 추정하도록 사용할 수 있는 방법론들이 존재한다. 단계3에서는 준실험(혹은 자연실험)이라 부르는 환상적인 방법들을 얘기해보겠다.
준실험은 정확히 랜덤으로 실험집단과 통제집단을 나눈건 아니지만 자연적으로 나눠져서 추정을 진행할 수 있을 때 사용할만하다. 현실적으로 A/B 테스트에 얼마나 가까운가에 따라 다른 방법론을 쓴다고 생각하면 된다. 능숙한 노동자가 되는 것의 급여에 미치는 영향을 측정하기 위해 베트남전쟁 징병 추첨제를 활용한 것이나, 최소임금이 경제에 미치는 효과를 측정하기 위해 뉴저지와 펜실베니아 경계를 활용한 것이 유명한 자연실험 예시다.
미리 경고한다. 지금 준실험 얘기를 듣고 푹 빠진, 사실은 모으기 힘든 양질의 데이터를 가질 수 있을거라 생각한 사람들이 있을거다… 없다고는 못할걸😜 내 주변에도 자연실험에 대한 극진한 사랑으로 미쳐서 매료되서 계량경제학자가 된 친구들이 좀 있다.
가장 유명한 준실험 방법론은 이중차분법(Causal Inference Mixtape의 저자 Scott Cunnigham은 이 방법론이 가장 유명하다고 한다), 회귀불연속설계법, 매칭법, 도구변수(구조적으론 기가 막힌데 현실에서 쓰기 어렵다)가 있다. 만약에 실험과 통제가 어떻게 분리될 수 있는지 설명하는 변수를 모두 관측했다면(수집했다면), 이 변수들을 모두 포함한 단순 선형 회귀로도 좋은 결과를 얻을 수 있다.
단계 4 - 반사실의 세계
마지막으로 완전 관측데이터만으로 인과 요인을 발견하고 싶을 때가 있을 거다. 테크 기업에서 클래식한 사례는 A/B 테스트도 진행한 적 없고 추가하려는 기능을 사용할 수 없는 통제 그룹도 없는 새로운 기능을 추가할 때다.
이런 생각이 들거다: 그냥 전후 데이터를 비교하면서 결론을 내버리겠다고? 이런 눈속임 분석은 대부분 엄밀한 분석을 하거나 추정치를 구하기 어렵다. 해결 아이디어는 반사실적인(counterfacual) 통제 집단을 계산할 수 있는 모델을 만드는 것이다. 반사실적이라는 것은 “이 사건이 일어나지 않았다면 일어났을 어떤 사건”을 의미한다. 만약 지금 많은 사용자에 대한 강건한 예측력을 가진 신뢰할만한 모델이 있다면 조건은 갖춰진거다.
집중하자. 반사실 방법론을 쓸 때 예측의 퀄리티가 핵심이다. 기술적 디테일로 깊이 들어가지 않고 얘기하자면 예측이 강건하다는 것은 잘 맞춘다는 것 뿐 아니라 지금 관측하고 있는 중요한 요인이 뭔지 이해하고 있다는 것이다. 새로 추가한 기능과는 독립적인 (경제환경 같은) 교란요인이 변한다면, 이런 변화를 기능이 영향을 준 것으로 하고 싶진 않을 것이다. 인과성을 주장하려면 이런 상황을 모델이 이해하는 정도는 되야 한다.
이게 반사실성을 활용할 때 강건함이 중요한 이유이다. 마이크로소프트의 doWhy 라이브러리처럼 잘 만든 인과추론 라이브러리는 이걸 자동으로 체크해준다😲. R패키지 tipr에 있는 민감도 분석 같은 경우도 이런 가정을 체크하는데 유용하다. DAG를 언급하지 않고는 인과추론 얘기를 끝낼 수 없는데 이 방법론은 단계4에서 나온 케이스에 가정을 세우는데 사용될 수 있다.
(막간을 이용한 이야기: 지금 예상치 못한 코로나 바이러스 사태로 대부분의 예측모델들이 잘못된 걸로 보인다. 이런 모델들은 반사실적 인과 분석에 사용돼선 안 된다)
기술적으로 보면 단계4의 방법들이 단계3의 방법들을 조금 비튼 것 정도로 보인다. 예를 들어 synthetic diff-in-diff은 이중차분법과 매칭법을 합친 것이다. 시계열 데이터에선 CausalImpact가 잘 만든 유명한 R패키지다. causalTree도 접근이 흥미롭다. 당연한 얘기지만 반사실적 통제 집단으로 인과추론을 할 때는 도메인 전문가와 신중하게 모델을 만들고 엄격히 테스트 해보는 게 최고의 방법론이다.
이 치트시트가 당신이 적절한 인과분석을 찾고 일을 효과적으로 진행하는데 도움이 됐으면 좋겠다.
번역을 마치며
데이터분석가로서 제 최대 관심사인 인과추론에 대한 치트시트입니다.
당연히 치트시트이기 때문에 상황별로 이런 게 있어 식의 구성이지만,
그 내용이 너무나도 알차서 꼭 공유하고 싶었습니다.
번역 과정의 문제는 온전히 제 역량 문제입니다 :)