인과 관계 분석 시리즈 (4): 머신러닝을 이용한 인과관계 추론 (feat. Metalearners)
- 이번 포스팅에서는 Künzel et al. (2019) 의 Metalearners for estimating heterogeneous treatment effects using machine learning 라는 논문을 읽으면서 내용을 정리했습니다.
- 이 논문은 인과관계 추론 중 Potential outcome에 기반하고, CATEConditional Average Treatment Effect, 조건 평균 처리 효과을 머신러닝 방법으로 추정하는건데, 이를 신선하게 Metalearner 라는 방법으로 접근했습니다.
- 인과관계 추론에 대한 기본 지식이 필요하시다면 Introduction to Bayesian Causal Inference을 참조해주세요 😄
Framework and Definitions
이 논문을 이해하려면 Potential Outcome Framework를 잘 이해하는 게 중요합니다.
Notation
먼저, 개의 훈련 데이터가 있을 때 번째 데이터를 로 표현할 수 있습니다. 여기서
- : 로 처리 여부로 0이면 처리를 받지 않은 것이고 1이면 처리를 받은 것을 의미합니다.
- : 로, 처리 여부 와 결과에 모두 영향을 주는 개의 교란변수 (confounder)를 의미합니다.
- : 처리를 받지 않았을 때와 받았을 때의 가상의 결과 (potential outcome)를 의미합니다.
예를 들어, 번째 개체가 처리를 받았다면 (), 의 값은 실제로 갖게 되지만 의 값은 알 수 없고, 처리를 받지 않았다면 의 값을 알 수 없기 때문에
가상의 결과라는 명칭이 쓰이게 되었습니다.
ATE
이 notation을 가지고 ATEAverage Treatment Effect, 평균 처리 효과를 정의하면 다음과 같습니다.
또한 다음과 같이 처리가 없을 때의 반응 함수 와 처리가 있을 때의 반응 함수 를
로 정의하면 데이터 의 관계를 표현할 수 있습니다.
여기서 는 의 주변 분포, 과 은 와 에 독립이고 평균이 0인 확률 변수입니다.
또한 는 성향점수 (propensity score)입니다. 성향 점수는 처리에 영향을 주는 교란변수을 찾아 처리가 1일 확률 를 추정한 것을 의미합니다.
성향 점수에 대한 자세한 설명은 이 포스팅을 참고하세요!
앞서 말씀드렸듯이 관측 환경의 데이터는 potential outcome 두 개를 동시에 관측할 수 없습니다. 대신에
만 관측하게 되죠. 참고로 처리를 받은 개체와 처리를 받지 않은 개체가 최소 1명 이상은 되어야 합니다.
또한 으로 표기하면 처리에 따른 데이터를 의미합니다. 즉 은 처리를 받지 않은 번째 개체, 은 처리를 받은 번째 개체의 데이터입니다.
ITE
이제 의 공변량들(covariates)을 가진 번째 개체에 대해서 인과 효과를 구하려면 ITEIndividual Treatment Effect, 개인 처리 효과를 구해야 합니다. ITE는 다음과 같이 정의가 됩니다.
그러나, 관측 데이터에서는 이나 하나만 관측되기 때문에 ITE를 구하는 건 불가능합니다. 대신에 CATE는 가능하죠.
CATE
CATE는 Condional Average Treatment Effect의 준말로 교란 변수를 조건으로 했을 때 평균 인과 효과를 의미합니다.
CATE를 위한 가정
CATE를 잘 추정하려면 가정 2개를 해야 합니다.
가정 1 (Unconfoundedness) : 를 조건으로 했을 때 potential outcome은 처리와 독립이여야 합니다. 이 가정이 위반하는 경우는 알려지지 않은 교란 변수가 더 존재할 때이기 때문에, 가정을 만족시키기 위해선 최대한 알려진 교란 변수를 많이 찾아야 함을 의미합니다.
가정 2 (Positivity / Overlap): 의 support안에서 CATE가 identifiable해야 합니다. 즉 성향 점수 (propensity score)가 0이 되거나 1이 되서는 안됩니다.
Metalearner
이미지 출처
{:.figure}
자. 이제 CATE를 추정하기 위한 Metalearner에 대해 알아봅시다. 위의 그림의 메타몽이 피카츄, 파이리, 이상해씨가 되듯이 Metalearner의 "meta"는 CATE를 추정하기 위한 base 알고리즘이 랜덤포레스트나 BART (Bayesian Additive Regression Tree)처럼 여러 형태를 가질 수 있음을 의미합니다.
기존의 CATE 추정을 위한 방법론은 S-learnerSingle learner, 단일 학습기와 T-learnerTwo learners, 이중 학습기였는데요. 여기서는 Metalearner로 X-learner라는 명칭을 사용합니다. 하나 하나씩 알아보겠습니다.
T-learner
T-learner는
- 처리를 받지 않은 개체와 받은 개체를 따로 분리해 각각 선형 회귀든 나무모형이든 머신러닝 모형을 통해 학습한 후
- 이들의 차이로 CATE를 추정합니다.
여기서 은 처리를 받지 않은 개체들의 공변량들과 반응값을 의미하고 은 처리를 받은 개체들의 공변량과 반응값을 의미합니다.
이렇게 추정된 과 은 각각 와 의 추정값입니다.
따라서 T-learner를 이용힌 CATE 추정은 다음과 같습니다.
S-learner
S-learner는
- 를 반응변수로 두고 교란변수와 처리를 같이 설명변수로 두어 마찬가지로 회귀 모형, 나무 모형과 같은 머신러닝 모형을 이용해 학습한 후,
- 일 때의 추정값에서 일 때의 추정값을 빼서 CATE를 추정합니다.
즉, 여기서 추정된 는 를 추정한 것입니다. 이후 추정된 CATE는 추정된 에 을 대입한 에서 을 대입한 를 뺀 값입니다.
X-learner
마지막으로 X-learner는
- T-learner처럼 처리를 받은 개체와 처리를 받지 않은 개체들끼리 나누어 반응 함수 (response function)을 추정해 , 를 계산하고
- 각 개체에 대해서 처리 효과를 impute합니다. 예를 들어 처리를 받은 개체는 은 존재하지만, 은 존재하지 않기 때문에 를 에 를 대입한 로 대체한 후에, imputed 개별 처리 효과인 를 구할 수 있습니다. 마찬가지로 처리를 받지 않은 개체는 은 존재하지만 은 존재하지 않기 때문에 을 으로 대체하여 을 구합니다.
- 이제 를 처리를 받지 않은 로 모델링하고 를 처리를 받은 로 모델링해 와 를 구합니다.
- 마지막으로 CATE를 다음과 같이 와 의 가중 평균으로 추정합니다.
여기서 의 좋은 추정값은 성향 점수 (propensity score)의 추정값인 입니다. 다만, 만약 처리를 받은 개체가 받지 않은 개체보다 매우 많다면 , 적다면 을 선택할 수 있습니다.
그렇다면 X-learner이 S-learner나 T-learner에 비해 갖는 장점은 무엇일까요?
이 글의 저자는 X-learner의 장점은
- unbalanced design, 즉 처리 받은 개체와 받지 않은 개체의 수가 크게 차이가 날 때
- CATE 함수 모양에 따른 유연한 적합
이라 말하고 있습니다.
실제로 이 X-learner가 다른 학습기에 비해 성능이 우수한 지에 대한 내용은 다음에 살펴보겠습니다.
References
- Künzel, Sören R., et al. “Metalearners for estimating heterogeneous treatment effects using machine learning.” Proceedings of the national academy of sciences 116.10 (2019): 4156-4165.
[link]