do-operator
정의
do-연산자(do-operator)는 개입(intervention)을 형식화하려고 Pearl이 제안한 연산자다.
이 식은 를 값 로 설정하는 개입 후의 분포를 나타낸다.
관측 조건화 와는 다음과 같이 구별된다.
- : 를 관측했을 때 의 분포
- : 로 개입했을 때 의 분포
직관적 이해
“가격이 $50인 제품의 수요”와 “가격을 $50으로 설정했을 때의 수요”는 다르다.
전자는 가격이 $50인 이유(예: 고품질)와 수요가 함께 섞여 있지만, 후자는 품질과 무관하게 가격만 바꾼 효과다.
do-연산자는 이 차이를 수학적으로 포착한다.
핵심 성질
그래프적 해석
는 DAG에서 다음 두 가지를 수행한다.
- 로 들어오는 모든 화살표를 제거한다.
- 의 값을 로 고정한다.
이것이 “외과적 개입(surgical intervention)“이다.
Pearl의 인과 계층
| 수준 | 질문 유형 | 예시 |
|---|---|---|
| 1. 연관 | $P(Y | X)$ |
| 2. 개입 | $P(Y | do(X))$ |
| 3. 반사실 | $P(Y_x | X’, Y’)$ |
do-연산자는 2수준(개입)에 해당한다.
백도어(back-door) 조정 공식
Back-door Criterion을 만족하는 조정 집합 가 있으면 다음이 성립한다.
이로써 관측 데이터만으로 개입 효과를 추정할 수 있다.
프론트도어(front-door) 조정
백도어 조정이 불가능할 때는 다음 공식을 쓴다.
예시
DoWhy 구현
import dowhy
from dowhy import CausalModel
model = CausalModel(
data=data,
treatment='price',
outcome='demand',
graph="""digraph {
cost -> price;
quality -> price; quality -> demand;
price -> demand;
}"""
)
# 개입 효과 식별
identified = model.identify_effect()
print(identified.get_backdoor_variables()) # ['quality']
# 추정
estimate = model.estimate_effect(
identified,
method_name="backdoor.linear_regression"
)
print(f"E[demand | do(price)] 의 기울기: {estimate.value:.3f}")
인과 효과와 조건부 기대값 비교
# 조건부 기대값 (관측)
E_Y_given_X = data[data['price'] == 50]['demand'].mean()
# 인과 효과 (개입) - 백도어 조정
adjusted = []
for quality_level in data['quality'].unique():
subset = data[(data['price'] == 50) & (data['quality'] == quality_level)]
weight = (data['quality'] == quality_level).mean()
if len(subset) > 0:
adjusted.append(subset['demand'].mean() * weight)
E_Y_do_X = sum(adjusted)
print(f"E[Y|X=50]: {E_Y_given_X:.2f}")
print(f"E[Y|do(X=50)]: {E_Y_do_X:.2f}")
관련 개념
- SCM - do-연산자의 이론적 기반
- Back-door Criterion - do 계산을 위한 조정 조건
- DAG - 인과 구조 표현
- Counterfactual Reasoning - 3수준(반사실) 쿼리
- Potential Outcomes - 대안적 인과 프레임워크
- Intervention Types - Perfect, Soft, Unknown interventions
- Interventional Discovery Overview - 개입을 활용한 causal discovery
참고 문헌
- Pearl, J. (2009). Causality: Models, Reasoning, and Inference.
- Pearl, J., Glymour, M., & Jewell, N. P. (2016). Causal Inference in Statistics: A Primer.
- Comprehensive Personalized Pricing Guide, Part IV, §11.2