AI 도입 효과 인과추론 (Python)

중급 정량 분석 technological python
예상 소요 시간 80분
사전 지식 Python 기초, 인과추론 개념
표본 크기 기준 최소 500개 기업
통계 가정 SUTVA, 조건부 독립성, 양수성
난이도: 중급 — 실제 연구에 바로 적용 가능한 수준입니다.

개요

AI 기술 도입이 기업 생산성에 미치는 인과 효과(ATE)를 Python의 DoWhy 라이브러리로 추정한다. 교란 변수를 통제하고 성향점수매칭(Propensity Score Matching)으로 인과 효과를 식별한다.

분석 절차

1단계: 인과 모형 정의

처치(AI 도입), 결과(생산성), 교란 변수(기업 규모, 산업, 기존 기술 투자, 직원 기술 수준), 도구 변수(AI 보조금 수여)를 정의한다.

2단계: 인과 효과 식별

backdoor criterion으로 교란 경로를 차단하여 인과 효과를 식별한다.

3단계: 인과 효과 추정

성향점수매칭으로 도입 기업과 비도입 기업을 매칭하여 ATE(Average Treatment Effect)를 추정한다.

4단계: 반박 검정

무작위 교란 변수 추가, 위 타당성 검정 등으로 추정 결과의 강건성을 검증한다.

코드 예제

import dowhy
from dowhy import CausalModel
import pandas as pd

# 데이터 로드
df = pd.read_csv('ai_adoption_data.csv')

# 인과 모형 정의
model = CausalModel(
    data=df,
    treatment='ai_adopted',
    outcome='productivity_score',
    common_causes=['firm_size', 'industry', 'prior_tech_investment', 'employee_skill'],
    instruments=['ai_subsidy_received']
)

# 인과 효과 식별
identified_estimand = model.identify_effect()

# 인과 효과 추정 (이중 강건 추정)
estimate = model.estimate_effect(
    identified_estimand,
    method_name="backdoor.propensity_score_matching"
)
print(f"ATE: {estimate.value}")

# 반박 검정
refute_results = model.refute_estimate(
    identified_estimand, estimate,
    method_name="random_common_cause"
)

참고문헌

Pearl, J., & Mackenzie, D. (2018). The Book of Why. Basic Books. Imbens, G. W., & Rubin, D. B. (2015). Causal Inference for Statistics, Social, and Biomedical Sciences. Cambridge University Press.

코드 예제

PYTHON
import dowhy from dowhy import CausalModel import pandas as pd # 데이터 로드 df = pd.read_csv('ai_adoption_data.csv') # 인과 모형 정의 model = CausalModel( data=df, treatment='ai_adopted', outcome='productivity_score', common_causes=['firm_size', 'industry', 'prior_tech_investment', 'employee_skill'], instruments=['ai_subsidy_received'] ) # 인과 효과 식별 identified_estimand = model.identify_effect() # 인과 효과 추정 (이중 강건 추정) estimate = model.estimate_effect( identified_estimand, method_name="backdoor.propensity_score_matching" ) print(f"ATE: {estimate.value}") # 반박 검정 refute_results = model.refute_estimate( identified_estimand, estimate, method_name="random_common_cause" )

참고문헌

Pearl, J., & Mackenzie, D. (2018). The Book of Why. Basic Books. Imbens, G. W., & Rubin, D. B. (2015). Causal Inference for Statistics, Social, and Biomedical Sciences. Cambridge University Press.

이 방법론과 연결된 콘텐츠