[Causal Inference] Matching & IPW

Hyerim Lee·2023년 12월 4일
1

Causal Inference

목록 보기
4/4

이 포스트는 Causal Inference and Discovery in Python책의 Chapter9의 내용을 바탕으로 작성하였습니다.

Matching

매칭은 다른 모든 인과추론 모델 사용 전에 사용하면 좋을만큼, 효과적으로 selection bias를 없애는 data proprecessing 방법입니다.

매칭에는 exact 매칭(값이 완전이 동일)과, inexact 매칭(값이 비슷한 매칭)이 있습니다.

사실 완전히 값이 동일하기란 거의 불가능합니다. 따라서 대부분(거의 모든 경우) 값을 어느정도 비슷하게 맞춰주는 ‘inexact’ 매칭을 사용합니다.

따라서, inexact 매칭을 할 때는 어느정도 가까운것까지 허용할 것인지, 얼마나 가까워야 가까운 것인지 알아내야 합니다.

두 관측치의 거리를 측정하는 방법에는 3가지가 있습니다.

  1. Euclidean distance
  2. Mahalanobis distance
  3. Minkowski distance

매칭을 하기 위해 raw한 실제값을 넣어줄 수도 있고, propensity score 같은 값을 사용해서 매칭을 할 수도 있습니다.

만약, features 개수가 많은 고차원 데이터라면 어떨까요?

실제값을 정확히 매칭하는 건 불가능하고, 비슷하게 맞춰주는 것도 쉽지 않습니다.

Propensity Score Matching

Propensity score matching은 해당 unit이 treatment를 받을 확률인 Propensity score로 매칭을 하는 방법입니다.

propensityscore=e^(X)=P(T=1X=x)propensity\,score=\hat{e}(X)=P(T=1|X=x)

PSM은 단 하나의 값으로만 매칭을 하기 때문에 상당히 유용해보입니다.

하지만, 이 방법은 몇 가지 문제가 있습니다.

  1. 차원을 줄이면서 정보가 사라집니다.
  2. 매우 다른 피쳐를 가지고 있는 두 unit이 같은 propensity score를 가질 수 있습니다. 따라서 이를 단순 매칭하면 bias를 불러일으킵니다.
  3. PSM은 역설이 존재합니다. PSM의 목표는 treatment와 control group을 randomized 하는 것입니다.

예를들어, 가장 이상적인(랜덤한) 데이터가 있다고 가정해봅시다.

binary treatment variable이라면 가장 이상적인 Propensity score는 0.5일 것입니다(완전 랜덤한 데이터라는 의미이기 때문).

그런데 만약, 모든 unit의 propensity score가 0.5라면 어떻게 될까요?

무작위로 하나를 선택하거나 단순히 모든 관측치를 평균하게 될 것입니다.

이건 우리가 매칭에서 원하는게 아닙니다.

우리는 가장 비슷한 관측치와의 비교를 원했습니다.

즉, PSM은 가장 랜덤한(이상적인) 상황을 목표로 하지만, 이 상황에선 PSM을 사용할 수 없습니다.

PSM은 hidden confounder가 없어야 하며, confounded data를 해결할 수 없습니다.

따라서, Propensity score를 매칭에 사용해서는 안됩니다.

매칭의 가장 중요한 가정은 모든 confounders이 관측되었다는 것입니다. 만약, 관측되지 않은 confounders이 있다면 정확한 인과 효과를 추정할 수 없습니다.

따라서 DAG(directed acyclic graph)를 그려서 confounders(통제 필요)과 colliders(통제해선 안됨)을 구별하는 것이 좋습니다.

많은 사람들은 PSM이 confounders를 해결할 수 있다고 생각하지만, 이 저자는 PSM은 그렇지 않다고 말합니다.

IPW (Inverse Probability weighting)

그럼, Propensity score는 무의미한 값일까요?

그렇지 않습니다. 매칭에 적합하지 않을 뿐이지, 다른 방법에서는 유용하게 사용 가능합니다.

IPW는 데이터에서 pseudo-populations을 생성하여 confounders를 통제하는 방법입니다.

pseudo-populations은 규모가 큰 그룹(해당 특성을 가진 unit이 많은 그룹)의 가중치는 높이고, 규모가 작은 그룹(해당 특성을 가진 unit이 적은 그룹)의 가중치는 낮춘 데이터셋입니다.

예를들어, 약물의 효과를 추정한다고 가정해봅시다.

성별에 따라 약물 효과가 다른데, treatment group에는 남자 2명, 여자 6명, control group에는 남자 12명, 여자 2명이라면, selection bias를 해결해주어야 합니다.

여성은 남성에 비해 treatment를 받을 확률이 높기 때문에, treatment group에서 여성의 가중치는 낮추고 남성의 가중치를 높입니다.

반대로, control group에서는 남성이 여성에 비해 많기 때문에, 남성의 가중치는 낮추고 여성의 가중치를 높입니다.

이를 수식으로 표현하면 다음과 같습니다.

τATE IPW=1N(i:Ti=1Yie^(Xi)j:Tj=0Yj1e^(Xj))\tau_{\text{ATE IPW}} = \frac{1}{N} \left( \sum_{i: T_i=1} \frac{Y_i}{\hat{e}(X_i)} - \sum_{j: T_j=0} \frac{Y_j}{1 - \hat{e}(X_j)} \right)
  • τATEIPW\tau_{ATE\,IPW}: IPW(inverse propability weighting)를 이용한 ATE(average treatment effect)
  • NN: 샘플의 개수
  • TiT_{i}: treatment 여부
  • YiY_{i}: observed outcome variable
  • e^(Xi)\hat{e}(X_i): propensity score

IPW 역시 unbiased estimates를 얻기 위해서는 XX에 모든 confounder를 포함해야 합니다.

Key Ideas

‘matching’은 비슷한 관측치끼리 매칭함으로써 selection bias를 없애는 방법입니다.

하지만, 변수의 개수가 많아지면 매칭이 쉽지 않습니다.

이럴 땐, ‘IPW’ 방법을 이용할 수 있습니다.

‘IPW’는 ‘propensity score’를 inverse weighting으로 사용함으로써, treatment group과 control group을 비슷하게 맞춰주는 방법입니다.

‘matching’과 ‘IPW’ 모두 unobserved confounder가 존재하면 효과가 잘못 추정될 수 있기 때문에 주의해야 합니다.

다음 포스팅에서는 위 방법들을 실제 코드로 구현하는 방법을 소개해드리겠습니다.

profile
Data Analyst

0개의 댓글