A/B 테스트와 매칭 방식을 비교한 챗GPT 생성 일러스트
A/B 테스트와 매칭, 챗GPT 생성 일러스트

A/B 테스트 없이 인과효과 추정하기: Matching

A/B 테스트 없이 인과 효과를 추정할 수 있는 Matching 기법을 HEARTCOUNT의 AI 분석 기능으로 실습하며 쉽게 이해해보세요.

목차

💡
“어떤 캠페인이 효과 있었을까?”, “정말 그 요인이 성과를 만든 걸까?” 단순한 수치 비교로는 설명되지 않는 ‘왜 그런지’를 알고 싶을 때, 인과 추론이 필요합니다. 이 글은 현장에서 실질적 분석을 수행하는 실무자들이,무작위 실험 없이도 인과관계를 추정할 수 있는 Matching 기법을 이해하고, HEARTCOUNT AI 분석으로 직접 실습해보는 과정을 안내합니다.

Intro

정책이 실제로 어떤 영향을 미쳤는지 알고 싶다면, 가장 신뢰할 수 있는 방법은 무작위 통제 실험(RCT, Randomized Controlled Trial)입니다. 흔히 A/B 테스트로 불리는 이 방식은 인과 효과 추정의 'gold standard'로 여겨집니다. 그 이유는 아래의 예시를 통해 살펴보겠습니다.

다만, 현실에서는 윤리적, 기술적 제약으로 인해 A/B 테스트를 수행하기 어려운 경우가 많습니다. 특히 테크 기업이 아닌 일반 조직에서는 실험 환경이 제대로 갖춰지지 않았거나, 있다 해도 모든 정책에 A/B 테스트를 적용하기엔 시간과 비용의 부담이 큽니다.

이러한 제약 속에서 우리는 무작위 실험을 모사(emulate)할 수 있는 다양한 방법론을 사용합니다. 아래 인과 추론의 계층 구조에서도 볼 수 있듯이, RCT는 가장 신뢰할 수 있는 방법 중 하나지만, 이를 대체하거나 보완하기 위한 다양한 방법들이 존재합니다. 이번 글에서는 매칭(Matching) 기법을 HEARTCOUNT의 AI 분석 기능을 활용해 직접 실습하며 이해해 보겠습니다.

출처: Korea Summer Workshop on Causal Inference 2023

왜 A/B 테스트(RCT)가 gold standard인가?

간단한 예시를 통해 살펴보겠습니다.

어느 보험사에서 사내 연수를 시행했고, 이 연수가 직원의 수입에 어떤 영향을 미쳤는지 알아보려고 합니다.

아래는 연수를 받은 그룹입니다.

사번 연수참가여부 나이 수입
1 1 28 17700
2 1 29 6100
3 1 25 20800
17 1 28 11500
18 1 27 10700
19 1 28 16300

그리고 아래는 연수를 받지 않은 그룹입니다.

사번 연수참가여부 나이 수입
20 0 43 20900
21 0 50 31000
22 0 30 21000
38 0 35 30200
39 0 32 17800
40 0 54 41100

💡
단순 평균 수입을 비교하면, 연수를 받은 그룹이 약 $4,297 더 적게 버는 것처럼 보입니다.

하지만 데이터를 보면 연수를 받지 않은 그룹이 평균적으로 더 나이가 많다는 점에서, 나이와 수입 간의 상관관계가 교란(confounding)을 일으켰을 가능성이 있습니다.

RCT의 핵심은 바로 이러한 변수들이 두 그룹에 균등하게 분포되도록 무작위 배정을 하는 데 있습니다. 표본 수가 충분히 크다면, 나이처럼 수입에 영향을 줄 수 있는 요인들이 자연스럽게 균형 있게 분포할 가능성이 높아지고, 이는 곧 인과 효과를 정확히 추정할 수 있는 기반이 됩니다.

하지만 앞서 말했듯, 현실적으로 RCT를 매번 수행하긴 어렵기 때문에, 이를 대체할 수 있는 방법이 필요합니다.

Matching

Matching의 개념과 방식

Matching은 말 그대로 비슷한 특성을 가진 사람끼리 짝을 지어 비교하는 방법입니다.

예를 들어, 나이 28세인 사번 1 (연수 받음)과 사번 27 (연수 안 받음)을 비교할 수 있습니다. 이처럼 모든 나이에 대해 가능한 짝을 찾아 비교하면, 나이라는 변수의 영향을 통제한 상태에서 연수의 효과를 추정할 수 있습니다.

이러한 작업을 HEARTCOUNT의 AI 분석 기능을 활용하면 수작업이나 코드 작성 없이 간단히 실습할 수 있습니다.

AI 분석으로 실습하기

1) 데이터셋 준비

아래 데이터를 다운로드합니다.

HEARTCOUNT에서 캠페인 생성하기파일 불러오기다음 단계 클릭하여 캠페인을 생성합니다.

2) 기본 비교

AI 분석 메뉴의 데이터 Q&A 기능을 이용하여 자연어로 분석 요청을 할 수 있습니다. 자연어 질문을 입력하면 SQL 쿼리와 시각화를 자동으로 생성합니다.

연수참가여부에 따른 수입 평균을 구해줘. 그리고 그 차이를 알려줘.
💡
위에서 확인한 것과 동일하게, 단순 비교로는 연수를 받은 그룹이 더 적게 버는 것처럼 나타납니다.

3) Matching을 통한 비교

같은 ‘나이’를 기준으로 ‘연수참가여부’가 1인 사람과 0인 사람을 모두 매칭하고, 각 쌍의 정보와 ‘수입’ 차이를 한 행에 보여줘.

나이 기준으로 적절히 매칭되는 것을 확인할 수 있습니다. 이를 바탕으로 효과를 다시 추정합니다.

4) Matching 기반 효과 추정

같은 ‘나이’ 기준으로 매칭된 ‘연수참가여부’ 1과 0 그룹의 ‘수입’ 차이를 계산하고, 그 차이들의 평균을 구해줘.

💡
이번에는 단순 비교와 달리, 연수가 수입 증가에 긍정적 영향을 주는 것으로 해석됩니다.

즉, 교란 요인(여기서는 나이)을 통제하자 인과효과 추정이 상당히 달라질 수 있음을 확인할 수 있습니다.

매칭의 한계와 확장

이번 실습에서는 단일 변수(나이)를 기준으로 Exact Matching을 수행했습니다. 하지만 실제 분석에서는 나이뿐 아니라 성별, 직급, 근속연수 등 다양한 혼란 변수(confounders)를 함께 고려해야 할 때가 많습니다. 이처럼 고려할 변수가 많아질수록, 모든 조건을 동시에 만족하는 짝을 찾기 어려워지고, 매칭 가능한 표본 수도 급격히 줄어듭니다. 이를 차원의 저주(curse of dimensionality)라고 합니다.

그 결과 많은 관측치가 제외되고, 추정에 사용되는 표본이 전체 모집단을 충분히 대표하지 못할 수 있습니다. 즉, 우리가 구한 인과효과는 전체가 아닌 일부 소표본에만 국한된 결과일 수 있다는 한계가 존재합니다. 이를 보완하기 위해 CEM, PSM, IPTW와 같은 다양한 기법들이 사용됩니다.

RCT가 어려운 상황에서도 관측 데이터를 활용해 인과 효과를 추정할 수 있는 방법들이 있습니다. 매칭은 그 중 하나이며, 이후 다른 기법들로 확장해 나갈 수 있습니다.


출처

💡
무료 체험하기
자연어를 SQL, 시각화로 변환해주는 AI 분석 '데이터 Q&A'기능으로 무료로 매칭 기법을 실습해보세요. 분석 언어를 몰라도, 데이터에 질문만 하면 빠르고 정확한 답을 얻을 수 있어요.

함께 보면 좋은 글

SQL은 AI가 쓸게요, 데이터 Q&A에 질문만 던져보세요
SQL 없이 자연어 질문으로 데이터 분석을 해보세요. HEARTCOUNT의 AI 기반 Data Q&A 기능을 소개합니다.
AI 분석 템플릿, 이렇게 사용하세요.
AI 데이터 분석이 더 쉬워졌습니다. 나의 분석 의도에 맞는 템플릿을 고르고, 더 다양한 시각화로 인사이트를 확인하세요. 새롭게 바뀐 다이얼로그 사용법을 지금 바로 만나보세요.