인과 그래프모델을 통한 식별의 재해석
인과관계 식별은 그래프 모델에서의 독립성과 밀접한 관련이 있다. 처치, 결과, 기타 변수 간의 인과관계를 나타내는 그래프가 있는 경우, 식별은 해당 그래프에서 처치와 결과 간의 인과관계를 분리하는 과정이라고 볼 수 있다. 그래프에서 처치와 결과 간에 연관성 경로 중 인과관계로 인한 연관성 경로를 제외한 경로를 비인과 경로(non-causal path) 혹은 뒷문 경로(backdoor path)라고 한다. 이러한 비인과 경로의 존재는 편향이 있음을 나타내므로 조건부 독립성 가정을 통해 이로 인한 비인과성 흐름을 차단해 인과 경로만을 남겨야 한다.
조건부 독립성 가정과 보정 공식
조건부 독립성 가정(Conditional Independence Assumption, CIA)은 공변량(confounding variable) $X$ 수준이 동일한 대상을 비교하면 잠재적 결과는 평균적으로 같음을 의미한다. 즉, 공변량 $X$ 값이 동일한 대상은 처치의 무작위 배정을 한 경우와 같이, 교환가능하다고 생각하는 것이다. 이처럼 독립성이 가정되면 $X$로 정의된 각 그룹 내에서 실험군과 대조군을 비교하고 각 그룹의 크기를 가중치로 사용해서 평균 처치효과를 알 수 있다.
$$ATE = E_X[E[Y|T=1] - E[Y|T=0]]$$
$$ATE = \sum_x {(E[Y|T=1, X=x] - E[Y|T=0, X=x]])P(X=x)}$$
$$ = \sum_x {E[Y|T=1, X=x]P(X=x) - E[Y|T=0, X=x]]P(X=x)}$$
이처럼 $X$를 조건부로 두거나 통제하면 평균 처치효과 ATE는 실험군과 대조군 간 그룹 내 차이의 가중평균으로 식별할 수 있으며, 이러한 공식을 보정 공식(adjustment formula) 또는 조건부 원칙(conditionality principle)이라고 한다. 또한, 이처럼 교란 요인을 보정하여 비인과 경로를 차단하는 과정을 뒷문 보정(backdoor adjustment)이라고 한다.
보정 공식을 적절히 적용하기 위해서는 다음 두 조건이 모두 만족되어야 한다.
- X의 모든 그룹에 실험군과 대조군의 실험 대상이 반드시 존재해야 한다
보정 공식에서는 처치와 결과 사이 차이를 $X$에 따라 평균을 내므로 보정 공식을 적용하기 위해서는 공변량 X의 모든 수준에서 실험군과 대조군이 있어야 한다. - 양수성 가정(positivity assumption)이 만족되어야 한다.
양수성 가정이란 교란변수가 주어졌을 때 처치를 배정받을 확률이 0과 1 사이라는 것($0<P(T|X)<1$)으로, 이 가정이 위배되면 보정 공식을 적용할 수 없다. 양수성 가정이 위배되더라도 식별은 가능할 수 있지만, 이 경우 외삽(extrapolation)이 필요할 수 있다.
구체적 식별 예시
좀 더 구체적인 예시를 통해서 이러한 가정들을 이해해 보도록 하자.
기업들은 수익을 극대화하기 위해 컨설턴트를 고용하곤 한다. 하지만 인사팀에서는 무턱대고 컨설턴트를 고용할 수는 없기 때문에 근거를 보고 싶어 한다. 이때 컨설턴트가 수익에 미치는 영향의 정도를 알면 컨설턴트를 고용할지 여부를 좀 더 쉽게 판단할 수 있을 것이다. 그러나 인과관계를 이해했다면, 컨설턴트 고용 여부에 따라 단순히 수익을 평균 내는 방법으로는 제대로 된 영향을 분석할 수 없다는 것을 직관적으로 알 수 있을 것이다. 수익이 높은 회사는 컨설턴트를 고용할 여유가 있었고 그에 따라 더욱 많은 수익을 낼 수 있었을 수도 있기 때문이다.
그래서 당신은 컨설턴트의 고용이 수익에 주는 영향을 식별하기 위해, 수익이 낮은 회사 30개와 수익이 높은 회사 30개의 지난 6개월간의 데이터를 수집했다. 실제로, 수익이 높은 회사는 30개 중 20개의 회사가 컨설턴트를 고용했지만, 수익이 낮은 회사는 10개의 회사만이 컨설턴트를 고용했음이 밝혀졌다. 이 상황에서, 컨설턴트의 고용이 수익에 주는 영향을, 비인과 효과를 제거하여 식별해 보도록 하자.
앞서 언급하였듯이, 단순히 컨설턴트 고용 여부에 따른 6개월 이후 수익 차이를 컨설턴트의 고용 효과라고 볼 수는 없다. 이전 6개월 간의 실적이 좋았던 회사가 컨설턴트를 고용할 수 있었고, 이전 6개월 실적이 이후 6개월 수익에 영향을 주었을 수 있기 때문이다. 이와 같은 편향을 제거하여 컨설턴트의 고용 효과를 정확히 추정하려면 과거 실적을 조건부로 설정하여 6개월 이후 실적을 비교하면 된다. 코드로는 다음과 같이 표현할 수 있다.
# 컨설턴트 고용 여부에 따라 이전 6개월 수익이 비슷한 것끼리 묶고 평균내기
avg_df = (df.groupby(['consultancy','profits_prev_6m',])['profits_next_6m'].mean())
# 각 그룹별 컨설턴트 고용 여부에 따른 이후 6개월 평균 수익 차
avg_df.loc[1] - avg_df.loc[0]
이제 이 효과의 가중평균을 구하면 된다. 앞서 컨설턴트를 고용한 회사가 30개, 고용하지 않은 회사가 30개라고 했으므로 두 그룹의 크기는 같기 때문에 이 예시에서 가중평균은 산술평균과 같다. 이를 통해 ATE를 구할 수 있고 결론적으로 컨설턴트 고용이 미치는 영향을 알아낼 수 있다. 물론 이를 위해서는 과거 실적이 컨설턴트 고용과 미래 실적의 유일한 공통원인이라는 조건부 독립성을 가정할 필요가 있다.
이처럼, 인과 그래프를 활용하면 처치를 무작위 배정하지 않고 ATE를 추정하려면 어떤 변수를 조건부로 설정해야 하는지를 알 수 있고, 이를 통해 알아낸 변수를 조건부로 설정하고 보정 공식과 조건부 독립성 가정을 이용하여 ATE를 추정함으로써 인과 효과를 알아낼 수 있다.
'인과추론' 카테고리의 다른 글
교란편향 (0) | 2024.06.24 |
---|---|
NetworkX로 그래프 쿼리하기 (0) | 2024.06.03 |
그래프 인과모델 (0) | 2024.05.30 |
인과적 식별 (0) | 2024.05.28 |
인과효과에서의 편향 (1) | 2024.05.24 |
댓글