do-operator
Definition
do-연산자는 Pearl이 제안한 개입(intervention)을 형식화하는 방법입니다.
이는 를 값 로 설정하는 개입 후의 분포를 나타냅니다.
관측 조건화 와 구별됩니다:
- : 를 관측했을 때 의 분포
- : 로 개입했을 때 의 분포
Intuitive Understanding
“가격이 $50인 제품의 수요”와 “가격을 $50으로 설정했을 때의 수요”는 다릅니다.
전자는 $50인 이유(예: 고품질)와 수요가 함께 섞여 있지만, 후자는 품질과 무관하게 가격만 변경한 효과입니다.
do-연산자는 이 차이를 수학적으로 포착합니다.
Key Properties
그래프적 해석
는 DAG에서:
- 로 들어오는 모든 화살표를 제거
- 의 값을 로 고정
이것이 “외과적 개입(surgical intervention)“입니다.
Pearl의 인과 계층
| 수준 | 질문 유형 | 예시 |
|---|---|---|
| 1. 연관 | $P(Y | X)$ |
| 2. 개입 | $P(Y | do(X))$ |
| 3. 반사실 | $P(Y_x | X’, Y’)$ |
do-연산자는 2수준 (개입)에 해당합니다.
백도어 조정 공식
Back-door Criterion을 만족하는 조정 집합 가 있으면:
이로써 관측 데이터로 개입 효과를 추정할 수 있습니다.
프론트도어 조정
백도어 조정이 불가능할 때 사용:
Example
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}")
인과 효과 vs 조건부 기대값
# 조건부 기대값 (관측)
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}")
Related Concepts
- SCM - do-연산자의 이론적 기반
- Back-door Criterion - do 계산을 위한 조정 조건
- DAG - 인과 구조 표현
- Counterfactual Reasoning - 3수준 (반사실) 쿼리
- Potential Outcomes - 대안적 인과 프레임워크
- Intervention Types - Perfect, Soft, Unknown interventions
- Interventional Discovery Overview - Intervention 활용 causal discovery
References
- 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